sql >> Database >  >> RDS >> Mysql

Maximum aantal records in een MySQL-databasetabel

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.



  1. SQLite AUTOINCREMENT

  2. Gebruik binaire COPY-tabel FROM met psycopg2

  3. MYSQL naar outfile toegang geweigerd - maar mijn gebruiker heeft ALLE toegang... en de map is CHMOD 777

  4. 5 manieren om gegevens bij te werken met een subquery in Oracle SQL