sql >> Base de Datos >  >> RDS >> Mysql

Optimización de declaración de eliminación de MySQL

Si su DELETE tiene la intención de eliminar la gran mayoría de las filas en esa tabla, una cosa que la gente suele hacer es copiar solo las filas que desea mantener en una tabla duplicada y luego usar DROP TABLE o TRUNCATE para acabar con la mesa original mucho más rápido.

Un índice puede ayudar a encontrar las filas que necesita eliminar, pero eliminar requiere actualizar el índice. Después de eliminar muchas filas, el índice puede estar desequilibrado y requiere algo de mantenimiento con OPTIMIZE TABLE .

El DATE_SUB() La función es una expresión constante (no varía fila por fila), por lo que el optimizador de consultas debe ser lo suficientemente inteligente como para factorizarla y realizar el cálculo una vez.

No necesita crear un índice adicional para una clave principal. La restricción de clave principal crea implícitamente un índice que brinda el mismo beneficio que un índice de clave no principal.

Un índice compuesto probablemente sea tan útil como un índice de una sola columna, siempre que sus criterios de búsqueda hagan referencia a la(s) columna(s) más a la izquierda del índice. La advertencia "probablemente" se debe a que los nodos de índice individuales son más grandes y, por lo tanto, se necesita más memoria para almacenar en caché el índice, pero este es un factor lo suficientemente pequeño como para que no cree otro índice de una sola columna.