De grootste waarde van een geheel getal heeft weinig te maken met het maximale aantal rijen dat u in een tabel kunt opslaan.
Het is waar dat als u een int of bigint als uw primaire sleutel gebruikt, u slechts zoveel rijen kunt hebben als het aantal unieke waarden in het gegevenstype van uw primaire sleutel, maar u hoeft van uw primaire sleutel geen geheel getal te maken , je zou er een CHAR (100) van kunnen maken. U kunt de primaire sleutel ook over meer dan één kolom declareren.
Naast het aantal rijen zijn er andere beperkingen aan de tabelgrootte. U kunt bijvoorbeeld een besturingssysteem gebruiken met een beperking van de bestandsgrootte. Of u kunt een harde schijf van 300 GB hebben die slechts 300 miljoen rijen kan opslaan als elke rij 1 KB groot is.
De limieten van de databasegrootte zijn erg hoog:
http://dev.mysql.com/doc /refman/5.1/en/source-configuration-options.html
De MyISAM-opslagengine ondersteunt 2 rijen per tabel, maar u kunt MySQL bouwen met de --with-big-tables
optie om het tot 2 rijen per tafel te laten ondersteunen.
http://dev.mysql.com/doc/refman /5.1/nl/innodb-restrictions.html
De InnoDB-opslagengine heeft een interne rij-ID van 6 bytes per tabel, dus er is een maximum aantal rijen gelijk aan 2 of 281.474.976.710.656.
Een InnoDB-tabelruimte heeft ook een limiet voor de tabelgrootte van 64 terabyte. Hoeveel rijen hierin passen, hangt af van de grootte van elke rij.
De limiet van 64 TB gaat uit van de standaardpaginagrootte van 16 KB. U kunt de paginagrootte vergroten en daarmee de tablespace vergroten tot 256TB. Maar ik denk dat andere prestatiefactoren dit niet raadzaam maken lang voordat je een tafel tot die omvang laat groeien.