Colección de citas famosas - Frases motivadoras - Causas de la fragmentación del espacio de almacenamiento de la base de datos y cómo restaurar la fragmentación

Causas de la fragmentación del espacio de almacenamiento de la base de datos y cómo restaurar la fragmentación

Tomando MySQL como ejemplo, la presencia de fragmentación afecta en gran medida el rendimiento.

La fragmentación de MySQL es un problema común en la operación y mantenimiento de MySQL. La existencia de fragmentación afecta en gran medida el rendimiento de la base de datos. Este artículo explicará la fragmentación de MySQL.

Método de juicio:

Se puede encontrar si se generan fragmentos de MySQL comprobando.

Muestra el estado de la tabla en table_nameG;

Si el campo Data_free en este comando no es 0, provocará la fragmentación de los datos.

Motivo:

1. Operaciones de eliminación frecuentes.

Las operaciones de eliminación frecuentes dan como resultado espacios en blanco. Si se realiza una nueva inserción, MySQL intentará utilizar estas áreas vacías, pero aún así no podrá ocuparlas por completo, lo que provocará una fragmentación con el tiempo.

Demostración:

Cree una tabla, inserte datos en ella, use condiciones Where o límites para realizar operaciones de eliminación y compare los cambios en Data_free antes y después de la eliminación.

Antes de la eliminación:

Después de la eliminación:

Data_free no es 0, lo que indica la existencia de fragmentación;

2. /p >

Actualizar actualiza campos de longitud variable (como el tipo varchar) y actualiza cadenas largas a cadenas cortas. Anteriormente el contenido almacenado era largo, pero luego fue corto. Incluso si se insertan nuevos datos más adelante, parte del espacio vacío no se utiliza de manera efectiva.

Demostración:

Cree una tabla, inserte un dato en ella, realice una operación de actualización y compare los cambios antes y después de Data_free.

CREAR TABLA ` t 1 ` (` k ` varchar (3000) DEFAULT NULL) ENGINE = MyISAM DEFAULT CHARSET = utf8

Declaración de actualización: actualizar t 1 set k = 'AAA; ';

Longitud antes de la actualización: 223data_free: 0

Duración de la actualización: 3data_free: 204

Data_free no es 0, lo que indica que existe fragmentación

Impacto:

1. Debido a que el espacio fragmentado es discontinuo, estos espacios no se pueden utilizar por completo

2. Debido a la existencia de fragmentos, la E/S del disco de la base de datos; las operaciones se convierten en lecturas y escrituras aleatorias discretas, lo que aumenta la carga de E/S del disco.

Método de limpieza:

Myisam: nombre de tabla optimizable (la optimización puede organizar archivos de datos y reorganizar índices; )

Innodb:

1.ALTER TABLE tablename ENGINE = InnoDB; ¿Reconstruir el motor de almacenamiento de tablas y reorganizar los datos?

2. Importa y exporta datos una vez.

Comparación de rendimiento de la limpieza de escombros:

Cite los datos de mi biblioteca anterior para comparar las diferencias antes y después de la limpieza.

Velocidad de ejecución de SQL:

seleccione recuento (*) de la prueba .Twitter_11

Antes de la modificación: 65438 0 filas en la colección (7,37 segundos)

p>

Después de la modificación: 1 fila en la colección (1,28 segundos)

Conclusión:

En comparación, podemos ver que se ahorró mucho espacio antes y después de la fragmentación. limpieza, la eficiencia de ejecución de SQL es más rápida. Por lo tanto, en el trabajo diario de operación y mantenimiento, los fragmentos deben limpiarse periódicamente para garantizar un rendimiento estable de la base de datos.