mysql overhead

En MySQL, ¿qué significa "gastos generales", qué tiene de malo y cómo solucionarlo?



overhead (4)

pregunta simple, pero me ha estado molestando por un tiempo ahora ...

¿Qué es "overhead" en MySQL, y debería estar preocupado?

¿Al hacer clic en "optimizar la tabla" se soluciona de manera real?


Optimizar la tabla puede ser muy problemático. Por ejemplo, si la tabla se usa mucho en un sitio.

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

Después de eliminar una gran parte de una tabla MyISAM o ARCHIVE, o realizar muchos cambios en una tabla MyISAM o ARCHIVE con filas de longitud variable (tablas que tienen columnas VARCHAR, VARBINARY, BLOB o TEXT). Las filas eliminadas se mantienen en una lista vinculada y las operaciones INSERT subsiguientes reutilizan las posiciones de las filas antiguas. <

Creo que he confirmado este comportamiento. Y sin duda sería muy útil.


Overhead es Data_free de una tabla, es decir, el número de bytes asignados pero no utilizados. Podemos encontrarlo por el comando SQL SHOW TABLE STATUS . Es el espacio libre en el tamaño asignado para su mesa.


Parece que la sobrecarga es un espacio de disco temporal que la base de datos utiliza para ejecutar algunas de las consultas, por lo que solo debe preocuparse si esto se vuelve realmente alto.

Puede comparar ''Optimizar la tabla'' con la desfragmentación de su disco duro.

Yo cito:

Cada base de datos, con el tiempo, requerirá algún tipo de mantenimiento para mantenerlo en un nivel de rendimiento óptimo . Purgar filas eliminadas, resecuenciar, comprimir, gestionar rutas de índice, desfragmentar, etc. es lo que se conoce como OPTIMIZACIÓN en mysql y otros términos en otras bases de datos. Por ejemplo, IBM DB2 / 400 lo llama REORGANIZAR MIEMBRO DE ARCHIVO FÍSICO.

Es como cambiar el aceite de tu auto o hacer una puesta a punto. Puede pensar que realmente no tiene que hacerlo, pero al hacerlo, su automóvil funciona mucho mejor, obtiene un mejor rendimiento de la gasolina, etc. Un automóvil que obtiene mucho kilometraje requiere afinamientos más a menudo. Una base de datos que obtiene un uso intensivo requiere lo mismo. Si está realizando muchas operaciones de ACTUALIZACIÓN y / o SUPRESIÓN, y especialmente si sus tablas tienen columnas de longitud variable (VARCHAR, TEXTO, etc.), debe mantener el ajuste.


Si está hablando de lo que phpMyAdmin llama overhead , entonces es el tamaño real de un archivo de datos de tabla en relación con el tamaño ideal del mismo archivo de datos (como si acabara de restaurar desde la copia de seguridad).

Por motivos de rendimiento, MySQL no compacta los archivos de datos una vez que elimina o actualiza las filas.

Esta overhead es mala para el escaneo de tabla, es decir, cuando su consulta necesita ejecutarse sobre todos los valores de la tabla, tendrá que mirar más espacio vacío.

Puede deshacerse de la overhead ejecutando OPTIMIZE TABLE que compactará su tabla e índices.