This page has been translated from Spanish

...::: Guatewireless.org ::::..

Technologie, Software Libre, Guatemala, Open Source, Linux, WLAN, WiFi, Scripting, Debian, CentOS, Gentoo, RedHat, SuSE, Windows

MySQL: The table is full-Fehler - gelöst

Abgesehen von meinen regelmäßigen Aufgaben, bin ich auch der DBA (Datenbankadministrator) und ehrenamtlich in letzter Zeit habe ich correguir Fehler beheben und MySQL. Alles begann mit dem Problem im Folgenden beschrieben:

Unter allen unseren Datenbanken, gibt es ein insbesondere, dass ein durchschnittlich 40k Transaktionen pro Tag verarbeitet. Diese Datenbank läuft unter MySQL, die eine Tabelle, die bereits mehr als 21 Millionen Datensätze, die es haben die 4 GB an Informationen.

Für seine Größe, zeigte diesen Fehler MyISAM-Tabelle Die Tabelle ist voll, die anfangs dachten wir, wir könnten Einschränkungen 2.4.x Kernel ext2-Dateisystem (falls es sich um eine Red Hat Linux 9).

MySQL 4GB Limit

Die MySQL-Fehler, ist der Tisch voll ist, eine Nachricht, die angezeigt wird, wenn eine Tabelle 4 GB Größe erreicht hat, wirklich unterschätzt die Auswirkungen, da sie nur sehr wenige Anwendungen, die diese Datenmenge überschreiten werden. Aber wenn wir unsere Leistungen und unser Datenbank-Server MySQL konsolidierte nicht mehr funktioniert, ist ein großes Problem.

Es ist ratsam, eine gute Analyse und Gestaltung von unserer Datenbank machen, so dass dies nicht der Fall. Doch manchmal ist es schwer vorstellbar, dass eine Tabelle 21 Millionen Datensätze können auf zwei Jahre enthalten.

InnoDB-Tabellen haben diese Einschränkung nicht, weil ihre Lagerung Modell ist völlig anders. In einer MyISAM-Tabelle mit dynamischen oder variabler Länge Zeilen, die Index-Datei der Tabelle (nombre_tabla.MYI) gespeichert Zeilen mit 32-Bit-Zeiger in die Daten-Datei (nombre_tabla.MYI). Dies hat eine Grenze von 4 GB Speicherplatz.

Denken Sie daran, dass die meisten 32-Bit-Computern sind seit Technologien wie 64-bit AMD Opteron-Prozessoren auch die Unterstützung für 32bit.

Die Lösung des Problems der Tabelle ist voll

Die Lösung auf den Tisch voll ist nicht sehr dicil, gerade genug, um die ALTER TABLE-Befehl ausführen, aber es kann viel Zeit vergehen. Nehmen wir das Beispiel der Kreatur Tabelle Sleeve Length:

  mysql> DESCRIBE Kreatur; 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  | Field          | Typ                 | Null | Key | Default | Extra         | 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  | Guide           | int (10)     unsigned | NoA | PRI | NULL  | auto_increment | 
  | Ida             | mediumint (8) unsigned | NoA | MUL | 0A      |                | 
  | Karte            | smallint (5) unsigned | NoA | MUL | 0A      |                | 
  | SpawnMask      | tinyint (3) unsigned  | NoA |     | 1      |                | 
  | Modelle        | mediumint (8) unsigned | NoA |     | 0A      |                | 
  | Equipment_id   | mediumint (9)          | NoA |     | 0A      |                | 
  | Position_x     | float                | NoA |     | 0A      |                | 
  | Position_y     | float                | NoA |     | 0A      |                | 
  | Position_z     | float                | NoA |     | 0A      |                | 
  | Orientierung    | float                | NoA |     | 0A      |                | 
  | Spawntimesecs  | int (10)     unsigned | NoA |     | 120A    |                | 
  | Spawndist      | float                | NoA |     | 5      |                | 
  | Currentwaypoint | mediumint (8) unsigned | NoA | Â Â Â Â | 0A Â Â Â Â Â | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | 
  | Curhealth      | int (10)     unsigned | NoA |     | 1      |                | 
  | Curmana        | int (10)     unsigned | NoA |     | 0A      |                | 
  | DeathState     | tinyint (3) unsigned  | NoA |     | 0A      |                | 
  | MovementType   | tinyint (3) unsigned  | NoA |     | 0A      |                | 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  17 rows in set (0,02 sec) 


Um die Grenze der Größe der Tabelle zu finden, verwenden Sie die SHOW TABLE STATUS. Und beachten Sie, dass Max_data_length beträgt 4 GB.

  mysql> SHOW TABLE STATUS LIKE 'Tier' \ G;
 *************************** 1.  row ***************************
 Â Â Â Â Â Â Â Â Â Â Name: Kreatur
 Â Â Â Â Â Â Â Â Engine: MyISAM
 Â Â Â Â Â Â Â Version: 10
 Â Â Â Â Row_format: Dynamic
 Â Â Â Â Â Â Â Â Â Â Zeilen: 95094
 Â Avg_row_length: 46
 Â Â Â Data_length: 4382696
 Max_data_length: 281474976710655
 Â Â Index_length: 2628608
 Â Â Â Â Â Data_free: 0
 Â Auto_increment: 106039
 Â Â Â Create_time: 2008-09-19 09:54:05
 Â Â Â Update_time: 2008-09-19 10:31:08
 Â Â Â Â Check_time: 2008-09-19 10:31:09
 Â Â Â Â Â Collation: utf8_general_ci
 Â Â Â Â Â Â Prüfsumme: NULL
 Â Create_options: ROW_FORMAT = DYNAMIC
 Â Â Â Â Â Â Â Kommentar: Beschwörung System
 1 row in set (0.00 sec)

 ERROR:
 Nr. Abfrage angegeben

 mysql> 



Lassen Sie uns dieses Problem beheben, indem Sie:

  mysql> ALTER TABLE Kreatur AVG_ROW_LENGTH max_rows = 200000000000 = 50;
 Query OK, 0 rows affected (0.03 Sekunden) 


Wenn wir nun die Kreatur SHOW TABLE STATUS LIKE '' run \ G, können wir sehen, Idee, dass der neue Wert Max_data_length: 1099511627775. Wenn ja, jetzt können wir mehr Informationen speichern in unserer MySQL-Tabelle.

Hinweis: Dieser Befehl in meiner Hardware Intel (R) Xeon (TM) CPU 2.80GHz mit 2GB RAM dauert es 45 Minuten.

Das Gute an dieser ganzen Erfahrung ist, dass wir bereit sind, unserem Rechenzentrum zu migrieren, um hohe Verfügbarkeit für die MySQL-Unterstützung.

Popularity: 2%



Tagged als:

Bitte geben Sie einen Kommentar

Bitte beachten Sie Folgendes:
Kommentare werden moderiert, damit es in ergreifen wird veröffentlicht. Keine Notwendigkeit, seine Bemerkung zu wiederholen.
Ihre Email wird nie aufgedeckt werden.

Suchbegriffe


  • Einschränkungen MySQL
  • mysql Rekordgröße
  • Tabellen voller Daten
  • geben Sie die Werte in eine Tabelle voll
  • Full-Table-mysql
  • mysql die Tabelle ist voll
  • Beispiel dafür, wie voll das Protokoll gundbaund
  • MySQL-Tabelle
  • Out Prepared Statements mit MySQL
  • mysql-Tabelle voll
  • eine Tabelle, die mit 1 gefüllt ist
  • mysql MAX_ROWS
  • ROW_FORMAT
  • MySQL Tabelle umbenennen
  • Wiederherstellung MySQL 4 gb
  • Probleme mit einer Tabelle, die eine Million Datensätze
  • MySQL-Tabellen Problem mit über 1 Mio. Datensätze
  • Probleme mit MySQL myisam
  • bd Wiederherstellung mysql Problem bei Win 64
  • mysql ROW_FORMAT
  • mysql-Tabelle voll
  • mysql eine Million Einträge
  • mysql die Tabelle ist voll
  • ROW_FORMAT = dynamic; myisam
  • SHOW TABLE STATUS LIKE \ table \
  • The table is full mysql ubuntu
  • The table is full mysql innodb
  • MySQL-Tabelle Größe WINDOWSXP
  • siehe Beispiel eines Daten-Tabelle gefüllt
  • Größe einer MySQL-Tabelle
  • mysql table is full
  • MyISAM-Tabellen größer als 4GB
  • MySQL-Tabellen gefüllt
  • mysql SHOW TABLE STATUS Tischgröße
  • Kreatur Griffe Tabellen
  • Kreatur Tabellen
  • mysql Tabelle 2 Millionen Datensätze
  • MySQL-Tabelle
  • Tisch voller Nutzerdaten
  • mysql table is full
  • table is full
  • mysql error Tabelle
  • MySQL-Tabelle unterstützen können zwei Millionen Rekord
  • MySQL InnoDB Data_free Auto_increment
  • create table übernimmt Führung
  • Fehler: table is full
  • Fehler mysql umzubenennen Tabelleneinträge
  • MySQL-Version Fehler Tabellen
  • Fehler MySQL Datenbank voll
  • Beispiele für eine Fehlertabelle
  • Musterbeispiel für statischen MyISAM-Tabelle auf
  • Beispiel dafür, wie die vollständige Registrierung gunbound
  • wo unter vollständige Datenbank
  • Kreatur Ärmelbretter
  • create index Full-Table -
  • die MySQL-Tabellen
  • wie ein Tisch voller
  • das Klopfen eine Million Einträge in mysql
  • ändern MySQL InnoDB MyISAM
  • MySQL-Datenbank in voller