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)





























