Den største værdi af et heltal har ikke meget at gøre med det maksimale antal rækker, du kan gemme i en tabel.
Det er rigtigt, at hvis du bruger en int eller bigint som din primærnøgle, kan du kun have lige så mange rækker som antallet af unikke værdier i datatypen for din primærnøgle, men du behøver ikke at gøre din primærnøgle til et heltal , du kunne gøre det til en CHAR(100). Du kan også erklære den primære nøgle over mere end én kolonne.
Der er andre begrænsninger på tabelstørrelsen udover antallet af rækker. For eksempel kan du bruge et operativsystem, der har en filstørrelsesbegrænsning. Eller du kunne have en 300 GB harddisk, der kun kan gemme 300 millioner rækker, hvis hver række er 1 KB stor.
Grænserne for databasestørrelse er virkelig høje:
http://dev.mysql.com/doc /refman/5.1/da/source-configuration-options.html
MyISAM-lagringsmotoren understøtter 2 rækker pr. tabel, men du kan bygge MySQL med --with-big-tables
mulighed for at få den til at understøtte op til 2 rækker pr. tabel.
http://dev.mysql.com/doc/refman /5.1/da/innodb-restrictions.html
InnoDB-lagringsmotoren har et internt 6-byte række-id pr. tabel, så der er et maksimalt antal rækker svarende til 2 eller 281.474.976.710.656.
Et InnoDB-tablespace har også en grænse for tabelstørrelse på 64 terabyte. Hvor mange rækker der passer til dette afhænger af størrelsen på hver række.
Grænsen på 64 TB antager standardsidestørrelsen på 16 KB. Du kan øge sidestørrelsen og derfor øge tablespacet op til 256TB. Men jeg tror, du vil finde ud af, at andre præstationsfaktorer gør dette utilrådeligt længe før du vokser et bord til den størrelse.