Aparte de mis atribuciones regulares, tambien soya el DBA (administrador de base de datos) ad honorem y ultimamente meg at han dedicado en correguir errores y resolver problemas de MySQL. Todo empezo con el problema que detallo en continuacion:
Entre todas nuestras baser de datos existe Una eget spesielle que un maneja promedio de 40k transacciones diarias. ESTA basen de datos la cual tilsvarer en MySQL tiene una tabla la cual ya rebaso los 21 millones de registros, lo que la hacen tener los 4 GB de Información.
Por su Tamano esta tabla MyISAM mostro el feil Tabellen er full, el cual al principio nos hizo pensar que podria ser limitaciones del kernel 2.4.xo del Sistema de archivos ext2 (SI, es un Red Hat Linux 9).
Limite de 4GB de MySQL
El feil de MySQL, bordet er fullt es un mensaje que se despliega Cuando una tabla alcanza los 4GB de Tamano, en decir verdad se subestima el impacto, que ya sønn muy pocas las Aplicaciones que pueden sobrepasar esta cantidad de datos. Pero Cuando ya tenemos nuestros servicios consolidados y nuestro servidor de basene de datos MySQL Deja de funcionar, representanter un gran problema.
Es aconsejable realizar un buen analisis y Diseño de Nuestra de base de datos para que no ocurra esto. Sin embargo, en veces es dificil imaginar que una tabla pueda contener 21 millones de registros eget dos Anos.
Las Tablas Uskyldig ingen Tienen esta limitacion ya que su modelo de almacenamiento es completamente diferente. En una tabla MyISAM dinamica o de filas con longitud variabel, el Archivo de indice de la tabla (nombre_tabla.MYI) almacena utilizando filas con punteros de 32 bits dentro del Archivo de datos (nombre_tabla.MYI). Esto tiene un limite de 4 GB de Espacio.
Recordemos que la mayoria de computadoras son de 32bits ya que las tecnologias de 64 bits como el Opteron de AMD tambien Tienen soporte para 32bits.
Solucionando el problema de la tabla esta Llena
La solucion para bordet er fullt ikke es muy dicil, tan solo basta con Correr el comando ALTER TABLE, pero si puede llevar un Tiempo betydelig. Veamos como ejemplo la tabla de creatura de Mangos:
mysql> beskrive skapning; + ----------------- + ----------------------- + ------ + ----- + --------- + ---------------- + | Field          | Type                 | Null | Key | Standard | Extra         | + ----------------- + ----------------------- + ------ + ----- + --------- + ---------------- + | Guida           | int (10) unsigned     | NOA  | PRI | nulla   | AUTO_INCREMENT | | Ida             | MEDIUMINT (8) unsigned | NOA  | MUL | 0A      |                | | Mapa            | smallint (5) unsigned | NOA  | MUL | 0A      |                | | SpawnMask      | tinyint (3) unsigned  | NOA  |     | 1a      |                | | Modelid        | MEDIUMINT (8) unsigned | NOA  |     | 0A      |                | | Equipment_id   | MEDIUMINT (9)          | NOA  |     | 0A      |                | | Position_x     | float                | NOA  |     | 0A      |         A A A     | | Position_y     | float                | NOA  |     | 0A      |         A A A     | | Position_z     | float                | NOA  |     | 0A      |         A A A     | | Orientation    | float                | NOA  |     | 0A      |                | | Spawntimesecs  | int (10) unsigned     | NOA  |     | 120A    |                | | Spawndist      | float                | NOA  |     | 5a      |                | | Currentwaypoint | MEDIUMINT (8) unsigned | NOA  |     | 0A      |                | | Curhealth      | int (10) unsigned     | NOA  |     | 1a      |                | | Curmana        | int (10) unsigned     | NOA  |     | 0A      |             A A A | | DeathState     | tinyint (3) unsigned  | NOA  |     | 0A      |                | | MovementType   | tinyint (3) unsigned  | NOA  |     | 0A      |                | + ----------------- + ----------------------- + ------ + ----- + --------- + ---------------- + 17 p set (0.02 sek)