Hallo,

Ik ben bezig met een app met een mysql database er achter en dit wil ik graag groots opzetten. Nou is het nu nog wat voorbarig maar toch vraag ik het volgende mij af:

- Wat nou als er een tabel vol zit?

Ik weet dat een tabel van bigint(10) iets van 4 bilion records kan bezitten en dit neemt ook onwijs veel ruimte met zich mee. Maar ik ben nu een afweging aan het maken of ik sommige dingen in dezelfde tabel zal stoppen of dat ik voor sommige dingen een aparte tabel maak en dit koppel met een id.

Wanneer ik overal een eigen tabel voor maak kan ik per onderdeel iets van 4 bilion records gebruiken maar als ik het combineer kan ik in totaal 4 bilion records gebruiken.

Is het logisch dat als een tabel vol zit dat je een nieuwe tabel maakt en deze aan elkaar joint? Hoe doet facebook dat bijvoorbeeld? Ik neem aan dat zij een tabel hebben met reacties en per reactie een id dat weer gekoppeld is aan het id van een bericht. Maar zij zullen echt de quota al wel bereikt hebben.

Ik hoor graag of iemand hier iets vanaf weet. Ben er nieuwsgierig naar en kan het niet echt vinden op het internet.
Danny von Gaal op 04/07/2017 22:05:09

Er komt ook een tijdlijn functie in met reacties en likes e.d. en dit kan zomaar snel lopen als je veel gebruikers hebt.

Maar goed om te horen dat mensen hier zeggen dat ik me er nog geen zorgen over hoef te maken.

Ik heb voor de gein even zitten rekenen. Na 7,5 jaar staat de autoincrement-teller van mijn tabel op 15,5 miljard. Als het in dit tempo doorgaat, duurt het bijna 9 miljard jaar voor mijn teller is volgelopen. Dan is de zon al ongeveer 4 miljard jaar uitgedoofd. ;-)

Over het tellertje hoef je je in ieder geval geen zorgen te maken. Met dit soort aantallen records kan het dan weer wel een dingetje worden om de performance van je database een beetje acceptabel te houden. Maar gelukkig is (gemiddeld) 67 records per seconde best veel, zelfs als je een ontzettend drukke timeline zou hebben.
Exact mijn punt met "wanneer je 64 bit ints gebruikt kun je voor de voorzienbare toekomst (en daarna) in rap tempo inserten". Je krijgt dat in ieder realistisch tempo echt voorlopig niet gevuld :-)
Top. Dan ben ik gerust gesteld.

Reageren