Programación en castellano
Inicio > Tutoriales > MySQL > Índices y optimización de consultas
-Tutoriales

Índices y optimización de consultas


Procesamiento de consultas

Las reglas que usa MySQL para decidir como obtener los datos de una consulta pueden llegar a ser difíciles de entender si dichas consultas son algo complejas. Afortunadamente hay unas pocas reglas y un comando que nos permiten tener un mejor entendimiento de qué es lo que está haciendo MySQL. Primero vamos a comentar las reglas:

  • MySQL no usará un índice si decide que será mucho más rápido escanear completamente una tabla. En general, si un índice le hace saber a MySQL que accesará apróximadamente el 30 por ciento de las filas de una tabla, MySQL abandona el índice y simplemente ejecuta un escaneo completo de la tabla.
  • Si múltiples índices pueden ser usados para satisfacer una consulta, MySQL usará el que sea más restrictivo -- esto es, con el que se obtengan el menor número de filas.
  • Si las columnas que estamos seleccionando forman parte de un índice, MySQL puede leer todos los datos que necesitamos desde el índice y nunca tocar la tabla en sí.
  • Cuando usamos varias tablas en una consulta, MySQL leerá primero los datos desde la tabla que regrese el menor número de filas. El orden en el que se especifican las tablas puede no ser el mismo que use MySQL. Esto afecta también el orden en el que son regresados finalmente los registros, así que debemos asegurarnos de usar una cláusula ORDER BY si necesitamos que los registros tengan un orden en particular.

Habiendo dicho esto, es importante tener en cuenta que algunas de las desiciones que toma MySQL están basadas en suposiciones, y al igual que nosotros los humanos que hacemos muchas suposiciones, puede que MySQL ocasionalmente haga alguna que sea incorrecta.

Si sospechamos que esto ha sucedido, o simplemente queremos entender qué es lo que está haciendo MySQL para procesar una consulta, podemos usar el comando EXPLAIN. La sección a continuación explica más a detalle el uso de EXPLAIN.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados