database onderhoud?
Pagina: « vorige 1 2 3 volgende »
Handmatig verwijderen zal nooit de voorkeur hebben. Als een applicatie zo groot wordt, of als je verwacht dat een applicatie zo groot wordt, denk je altijd na over database onderhoud en database optimalisatie. Maar onderhoud en optimalisatie betekent niet dat er records uit de database verwijderd hoeven te worden...
Wat ik persoonlijk altijd zou inbouwen in je datamodel is een functie waarmee je kunt aangeven of records actief of inactief zijn. Dat kan eenvoudig door middel van een kolom met TRUE of FALSE, maar kan ook met een verloopdatum van een record of door het bijhouden van de laatste activiteit (van een gebruiker) binnen de applicatie. Op basis daarvan kun je tijdens onderhoud altijd bepalen of records die ouder zijn dan bijvoorbeeld 1 jaar en niet meer actief geweest zijn, verwijderd moeten worden. En zelfs dat doet je pas als je problemen hebt met schijfruimte of performance en andere middelen niet helpen ;-)
Wat ik persoonlijk altijd zou inbouwen in je datamodel is een functie waarmee je kunt aangeven of records actief of inactief zijn. Dat kan eenvoudig door middel van een kolom met TRUE of FALSE, maar kan ook met een verloopdatum van een record of door het bijhouden van de laatste activiteit (van een gebruiker) binnen de applicatie. Op basis daarvan kun je tijdens onderhoud altijd bepalen of records die ouder zijn dan bijvoorbeeld 1 jaar en niet meer actief geweest zijn, verwijderd moeten worden. En zelfs dat doet je pas als je problemen hebt met schijfruimte of performance en andere middelen niet helpen ;-)
Hmmm, oke... maar ik moet dus wel op voorhand iets inbouwen voor het geval dat de notities te veel ruimte in beslag nemen zodat ik ze makkelijk kan opruimen?
Maar wat vind jij dan "fout" aan het automatisch verwijderen (inactief zetten) van notities na een jaar? Of een maximum stellen aan het aantal notities? Waarom is dat niet goed?
Maar wat vind jij dan "fout" aan het automatisch verwijderen (inactief zetten) van notities na een jaar? Of een maximum stellen aan het aantal notities? Waarom is dat niet goed?
Ozzie PHP op 29/07/2011 11:09:51:
Hmmm, oke... maar ik moet dus wel op voorhand iets inbouwen voor het geval dat de notities te veel ruimte in beslag nemen zodat ik ze makkelijk kan opruimen?
Maar wat vind jij dan "fout" aan het automatisch verwijderen (inactief zetten) van notities na een jaar? Of een maximum stellen aan het aantal notities? Waarom is dat niet goed?
Maar wat vind jij dan "fout" aan het automatisch verwijderen (inactief zetten) van notities na een jaar? Of een maximum stellen aan het aantal notities? Waarom is dat niet goed?
Hij vind het fout omdat deze notities dan voor altijd verdwenen zijn. Als je een kolom erbij maakt met active: True or False, kunnen notities altijd teruggehaald worden. En omdat je database toch enorm veel records kan bevatten is het niet erg dat er zoveel records in staan.
Ja, dat is me op zich wel duidelijk... en ook het systeem met true en false is duidelijk. Maar de vraag is of het fout is om die berichten na een jaar automatisch te verwijderen / inactief te zetten... een jaar is toch lang zou je zeggen?
Het is niet fout, als je dat als functie van je applicatie wilt hebben. Maar dan blijft mijn vraag staan: wat is de meerwaarde (voor de gebruiker) dat notities na een jaar verwijderd/inactief worden?
Ik zie die meerwaarde niet en zie dus ook niet in waarom je het zou inbouwen. Met het oog op de toekomst kun je in je datamodel natuurlijk altijd de optie opnemen om notities te activeren/de-activeren. Maar dat betekent niet dat je de functionaliteit helemaal moet inbouwen ;-)
Ik zie die meerwaarde niet en zie dus ook niet in waarom je het zou inbouwen. Met het oog op de toekomst kun je in je datamodel natuurlijk altijd de optie opnemen om notities te activeren/de-activeren. Maar dat betekent niet dat je de functionaliteit helemaal moet inbouwen ;-)
Maar het is voor mijn cms... en die wil ik tzt voor meerdere sites gebruiken. Dan is het wel handig als er een "opruimfunctie" in zit.
Of er een meerwaarde is voor de gebruiker dat zijn / haar notities worden verwijderd weet ik niet... behalve dat hij / zij het niet zelf hoeft te doen :-/
De tool (die nog niet bestaat overigens) is bedoeld om simpele notities op te maken... maaaaar, stel dat mensen er belangrijke dingen in gaat zetten... tja... dan is het wel minder inderdaad als dat na een jaar ineens verdwijnt... hmmmm... toch nog eens goed over nadenken...
Of er een meerwaarde is voor de gebruiker dat zijn / haar notities worden verwijderd weet ik niet... behalve dat hij / zij het niet zelf hoeft te doen :-/
De tool (die nog niet bestaat overigens) is bedoeld om simpele notities op te maken... maaaaar, stel dat mensen er belangrijke dingen in gaat zetten... tja... dan is het wel minder inderdaad als dat na een jaar ineens verdwijnt... hmmmm... toch nog eens goed over nadenken...
Hier op het werk zitten we met iets vergelijkbaars, namelijk dat mensen mailtjes oneindig bewaren, simpel omdat ze te lui zijn om iets te verwijderen.
We krijgen eens in de zoveel tijd een reminder:
Alle berichten die je wilt bewaren in een aparte map zetten. Voor de rest geld: alles ouder dan 3 maand wordt verwijderd.
Iets vergelijkbaars zou je zelf ook kunnen maken.
We krijgen eens in de zoveel tijd een reminder:
Alle berichten die je wilt bewaren in een aparte map zetten. Voor de rest geld: alles ouder dan 3 maand wordt verwijderd.
Iets vergelijkbaars zou je zelf ook kunnen maken.
Ja da's ook wel een goede... maar de vraag is dan of je dat geautomatiseerd gaat doen (dus alleen bij bezoekers die mailtjes / notities van een jaar oud hebben) of dat je dit handmatig gaat doen op eigen initiatief, op het moment dat je zelf ziet dat de database te groot wordt dan iedereen een mail sturen...
Wil je gewoon echt onnodig werk gaan doen? Nogmaals (en ook de laatste keer dat ik het ga zeggen), maak je niet druk dat je database te groot wordt. Een grote database is een database met een paar honderd tabellen en miljoenen queries per dag. Ik weet dat er een systeem op een hogeschool is die alles (maar dan ook alles) wat de gebruiker doet opslaat. Elke klik wordt genoteerd. Ze zouden nu zo terug kunnen zien op welke dag ik voor het eerst mijn cijfers heb bekeken, hoeveel seconden daarvoor de leraar deze online heeft gezet, enzovoorts. En dat van elke leerling die ooit op die hogeschool heeft gezeten gedurende de periode dat het systeem online is.
Denken dat je notitiefunctionaliteit in notabene een CMS zoveel gebruikt gaat worden dat je je zorgen moet gaan maken dat je database 'vol' raakt (zover een database vol kan raken) is pure grootheidswaanzin.
Denken dat je notitiefunctionaliteit in notabene een CMS zoveel gebruikt gaat worden dat je je zorgen moet gaan maken dat je database 'vol' raakt (zover een database vol kan raken) is pure grootheidswaanzin.
Ik denk graag groot, hihi ;)
Oké, thanks... je betoog is overtuigend dus ik neem aan dat ik me dan inderdaad om niks druk maak. Wel even een andere vraag. Jij geeft aan dat er een hogeschool is waar alles wordt bijgehouden in een cms, maar even voor mijn beeldvorming... en om mezelf gerust te stellen :) ...heb jij een idee hoe groot zo'n database dan is? Of weet je misschien hoe groot de database van FOK is? (en misschien dat een van de moderators van PHPhulp weet hoe groot de database van PHPhulp is???) Ik kan me daar namelijk niet echt een voorstelling van maken.
Oké, thanks... je betoog is overtuigend dus ik neem aan dat ik me dan inderdaad om niks druk maak. Wel even een andere vraag. Jij geeft aan dat er een hogeschool is waar alles wordt bijgehouden in een cms, maar even voor mijn beeldvorming... en om mezelf gerust te stellen :) ...heb jij een idee hoe groot zo'n database dan is? Of weet je misschien hoe groot de database van FOK is? (en misschien dat een van de moderators van PHPhulp weet hoe groot de database van PHPhulp is???) Ik kan me daar namelijk niet echt een voorstelling van maken.
Met zulke databases ga je volgens mij al gauw richting een veelvoud aan GB's qua grootte...
GB's?????
Oeiiiii... da's heftig... Geldt dat ook voor de database van PHPhulp?
Oeiiiii... da's heftig... Geldt dat ook voor de database van PHPhulp?
Fok! en tweakers draaien allemaal loadbalanced, en database servers worden meestal met honderden gigabytes aan werkgeheugen uitgerust. Alles hangt van optimalisatie af, een database van 200MB kan enorm traag zijn, en een database van 50G enorm snel. Als je dan echt groot wilt kijken moet je meer richting cassandra. Iets over overkill...
Ricardo Persoon op 29/07/2011 21:58:53:
Fok! en tweakers draaien allemaal loadbalanced, en database servers worden meestal met honderden gigabytes aan werkgeheugen uitgerust. Alles hangt van optimalisatie af, een database van 200MB kan enorm traag zijn, en een database van 50G enorm snel. Als je dan echt groot wilt kijken moet je meer richting cassandra. Iets over overkill...
Ik heb zelfs gehoord dat FokForum! de hele database in het geheugen opslaat? Apart verhaal, maar ze zeiden dat dit de boel sneller zou maken?
Oké, maar mijn eigen domeinnaampje heeft volgens mij 1024mb schijfruimte... daar red je het dus niet mee als je site echt groot wordt :-D
Ozzie PHP op 29/07/2011 22:04:01:
Oké, maar mijn eigen domeinnaampje heeft volgens mij 1024mb schijfruimte... daar red je het dus niet mee als je site echt groot wordt :-D
Als het allemaal erg groot word, dan kan je nog altijd overstappen naar een andere hoster en of groter pakket om uit te bereiden.
Ik zie eigenlijk het probleem niet zo.
Gewijzigd op 29/07/2011 23:00:48 door Bart V B
Ja, tuurlijk kan dat :)
Er is ook geen probleem... behalve dat het extra geld dan kost ;)
Er is ook geen probleem... behalve dat het extra geld dan kost ;)
Ozzie PHP op 29/07/2011 23:13:24:
Ja, tuurlijk kan dat :)
Er is ook geen probleem... behalve dat het extra geld dan kost ;)
Er is ook geen probleem... behalve dat het extra geld dan kost ;)
Maar als het goed is betekend het ook dat je veel klanten hebt? ;)
Vergelijk jezelf op dit moment absoluut niet met een tweakers of FOK, dat is niet realistisch. Een GB aan ruimte is meer dan voldoende om mee te beginnen, zie het rekenvoorbeeldje van SanThe. Als je echt ruimte tekort komt, kun je altijd nog uitbreiden en op dat moment kun je er waarschijnlijk ook wel aan verdienen ;-)
En als je toch moeilijk wil doen kan je altijd ook nog proberen om je tabellen te comprimeren. :)
Volgens mij gaat het niet eens werken voor jou, maar toch.
http://dev.mysql.com/doc/innodb/1.1/en/innodb-compression.html
Maar het is heel ver gezocht.
Volgens mij gaat het niet eens werken voor jou, maar toch.
http://dev.mysql.com/doc/innodb/1.1/en/innodb-compression.html
Maar het is heel ver gezocht.




