pregunta simple, pero me ha estado molestando por un tiempo ...
¿Qué es "gastos generales" en MySQL, y debería estar preocupado?
¿haciendo clic en "optimizar tabla" lo arregla de verdad?
Parece que la sobrecarga es un espacio de disco temporal que la base de datos usó para ejecutar algunas de las consultas, por lo que solo debe preocuparse si esto es realmente alto.
Puede comparar 'Optimización de la tabla' con la desfragmentación de su disco duro.
Yo cito:
Con el tiempo, cada base de datos requerirá algún tipo de mantenimiento para mantenerla en un nivel de rendimiento óptimo . Purgar filas eliminadas, volver a secuenciar, comprimir, administrar 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 su automóvil 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 combustible, etc. Un automóvil que obtiene mucho kilometraje requiere afinaciones más a menudo. Una base de datos que se usa mucho requiere lo mismo. Si está realizando muchas operaciones de ACTUALIZACIÓN y / o ELIMINACIÓN, y especialmente si sus tablas tienen columnas de longitud variable (VARCHAR, TEXTO, etc.), debe mantenerse al día.
Si está hablando de lo que
phpMyAdmin
llamaoverhead
, 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 se acabara de restaurar desde la copia de seguridad).Por razones de rendimiento,
MySQL
no compacta los archivos de datos después de eliminar o actualizar filas.Esto
overhead
es malo para el escaneo de tablas, es decir, cuando su consulta necesita ejecutarse sobre todos los valores de la tabla, tendrá que buscar más espacio vacío.Puede deshacerse de la
overhead
ejecuciónOPTIMIZE TABLE
que compactará su tabla e índices.fuente
Overhead es Data_free de una tabla, es decir, el número de bytes asignados pero no utilizados. Podemos encontrarlo mediante el comando SQL SHOW TABLE STATUS . Es el espacio libre en el tamaño asignado para su mesa.
fuente
Optimizar 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
Creo que he confirmado este comportamiento. Y ciertamente sería muy útil de hecho.
fuente