This page has been translated from Spanish

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

Tecnologia, Software Libre, Guatemala, Open Source, Linux, Wireless, WiFi, Scripting, Debian, CentOS, Gentoo, RedHat, SuSE, Windows

MySQL: Il tavolo è pieno di errore - risolto

Oltre alle mie funzioni regolarmente, io sono anche il DBA (amministratore di database) e onorari ultimamente ho errori risolvere correguir e MySQL. Tutto è cominciato con il problema descritto di seguito:

Tra tutte le nostre banche dati, ce n'è uno in particolare, che gestisce una media di 40k transazioni al giorno. Questo database viene eseguito su MySQL, che ha una tabella che supera già i 21 milioni di dischi, che lo rendono hanno 4 GB di informazioni.

Per le sue dimensioni, questo errore ha mostrato delle tabelle MyISAM Il tavolo è pieno, che in un primo momento abbiamo pensato che potrebbe essere limitazioni kernel 2.4.x ext2 file system (se si tratta di una Red Hat Linux 9).

MySQL 4GB Limit

L'errore di MySQL, la tabella è piena è un messaggio che viene visualizzato quando si raggiunge una tabella di 4 GB di dimensione, molto sottovalutato l'impatto, poiché sono poche le applicazioni che possono superare questa quantità di dati. Ma quando abbiamo consolidato i nostri servizi ei nostri server di database MySQL smette di funzionare, è un grave problema.

Si consiglia di fare una buona analisi e progettazione del nostro database in modo che ciò non accada. Tuttavia, a volte è difficile immaginare che una tabella può contenere 21 milioni record in due anni.

InnoDB non hanno questa limitazione, perché il suo modello di archiviazione è completamente diversa. In una tabella MyISAM con righe di lunghezza dinamica o variabile, il file di indice della tabella (nombre_tabla.MYI) file memorizzati utilizzando 32-puntatore bit nel file di dati (nombre_tabla.MYI). Questo ha un limite di 4 GB di spazio.

Ricordate che maggior parte dei computer a 32 bit da tecnologie come il 64-bit AMD Opteron hanno anche il supporto per 32bit.

Risolvere il problema della tabella è piena

La soluzione per la tabella è piena, non è molto dicil, appena sufficiente per eseguire il comando ALTER TABLE, ma può richiedere molto tempo. Consideriamo l'esempio della tabella creatura Lunghezza manica:

  mysql> descrivere creatura; 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  | Field          | Type                 | Null | Key | Default | Extra         | 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  | Guida           | int (10)     unsigned | NoA | PRI | NULL  | auto_increment | 
  | Ida             | MEDIUMINT (8) unsigned | NoA | MUL | 0A      |                | 
  | Mappa            | smallint (5) unsigned | NoA | MUL | 0A      |                | 
  | SpawnMask      | tinyint (3)  unsigned | NoA |     |   1    |                | 
  | Modelli        | 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      |                | 
  | Orientamento    | float                | NoA |     | 0A      |                | 
  | Spawntimesecs  | int (10)     unsigned | NoA |     | 120A    |                | 
  | Spawndist      | float                | NoA |     |  5a     |                | 
  | Currentwaypoint | MEDIUMINT (8) unsigned | NoA | Â Â Â Â | 0A Â Â Â Â Â | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | 
  | Curhealth      | int (10)     unsigned | NoA |     |   1    |                | 
  | Curmana        | int (10)     unsigned | NoA |     | 0A      |                | 
  | DeathState     | tinyint (3) A unsigned | NoA |     | 0A      |                | 
  | MovementType   | tinyint (3) A unsigned | NoA |     | 0A      |                | 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  17 rows in set (0.02 sec) 


Per trovare il limite della dimensione della tabella, utilizzare il STATUS SHOW TABLE. E si noti che Max_data_length è di 4 GB.

  mysql> creatura SHOW TABLE STATUS LIKE '\ G;
 *************************** 1.  row ***************************
 Â Â Â Â Â Â Â Â Â Â Nome: creatura
 Â Â Â Â Â Â Â Â Motore: MyISAM
 Â Â Â Â Â Â Â Version: 10
 Â Â Â Â Row_format: Dynamic
 Â Â Â Â Â Â Â Â Â Â Righe: 95.094
 Â Avg_row_length: 46
 Â Â Â Data_length: 4382696
 Max_data_length: 281474976710655
 Â Â Index_length: 2628608
 Â Â Â Â Â Data_free: 0
 Â Auto_increment: 106.039
 Â Â Â Create_time: 2008-09-19 09:54:05
 Â Â Â Update_time: 2008-09-19 10:31:08
 Â Â Â Â Check_time: 2008-09-19 10:31:09
 Â Â Â Â Â Fascicolazione: utf8_general_ci
 Â Â Â Â Â Â Checksum: NULL
 Create_options Â: row_format = DYNAMIC
 Â Â Â Â Â Â Â Commento: Summon System
 1 row in set (0.00 sec)

 ERRORE:
 No query specificata

 mysql> 



Let's risolvere questo problema digitando:

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


Ora, se si esegue la creatura SHOW TABLE STATUS LIKE '\ G, possiamo vedere idea che il nuovo valore Max_data_length: 1099511627775. Se è così, ora siamo in grado di memorizzare più informazioni nella nostra tabella MySQL.

Nota: Questo comando nel mio hardware Intel (R) Core (TM) CPU 2.80GHz, con 2GB di RAM ci vogliono 45 minuti.

L'aspetto positivo di tutta questa esperienza è che siamo più pronti a migrare il nostro centro di computer per supportare l'alta disponibilità per MySQL.

Popularity: 2%

Contrassegnati come:

Si prega di inserire un commento

Si prega di notare quanto segue:
I commenti sono moderati, in modo che possa prendere in corso di pubblicazione. Non c'è bisogno di ripetere il suo commento.
La tua email non sarà mai rivelato.

Termini di ricerca


  • tabella MySQL è piena
  • Le dichiarazioni preparate con MySQL
  • MySQL Table completo
  • MySQL Table completo
  • 4 errore-riempita ram backtrack spazio
  • tabella MySQL completo
  • La tabella è piena IP mysql
  • problemi con MyISAM MySQL
  • MySQL Table show dimensione della tabella di stato
  • tabella degli errori MySQL
  • tabella MySQL completo
  • MySQL 1 milione di record
  • Deprecato tabella dinamica
  • Max_data_length MySQL
  • MySQL database completo
  • manghi e modificare la password di MySQL
  • come si riempie un comando
  • come una tabella completa
  • correzione di errore in MySQL SHOW TABLE STATUS LIKE
  • esempio di modello statico MyISAM table
  • ingregar dati di errore di errore MySQL
  • Errore del database mysql completo
  • Guida creatura Tabella maniglie
  • limitazione delle tabelle MySQL dati
  • int size (10) mysql