jueves, 6 de noviembre de 2014

Tips optimización 1 MySQL

Lo primero que hay que revisar cuando queremos hacer una consulta mas rápida, es el 
uso de indices. 

Tips para Optimización de Consultas:

- Usar el comando EXPLAIN <consulta>, regresa información con respecto a la consulta.
- id: Numero secuencial de la consulta
- select_type: Tipo de consulta, los cuales pueden ser:
- SIMPLE: Consulta simple, sin subquerys.
- PRIMARY: Similar a la consulta simple.
- UNION: Segunda o tercera consulta dentro de una union. 
- DEPEDENT UNION: Similar a UNION.
- UNION RESULT: Resultado de la UNION.
- SUBQUERY: Primer subconsulta 
- DEPENDENT SUBQUERY: Similar a subquery 
- DERIVED: Subconsulta en una clausula FROM.
- table: Tabla a la que hace refernecia los registros.
- type: Tipo de join.
- system: Solo tiene un registro
- const:  
- eq_ref: 
- refref_or_null: 
- index_merge: 
- unique_subquery: 
- index_subquery: Es similar al unique_subquery, remplaza las subconsultas en IN, pero trabaja sobre indices no unicos.
- range: Solo los registros que fueron solicitaos son los que se regresan.
- index: Similar al "ALL", por lo general es mas rápido que el de ALL ya que se basa en el scaneo del arbol del indice. 
- ALL: Escaneo completo de la tabla.

- Suponiendo que tenememos una consulta con comparaciones entre campos, ya sea en un inner join ON, ó where, es importante mantener el mismo tipo de campos y padding en ambos. varchar(10) vs varchar(15) no es bueno, varchar(10) vs char(10) si lo es.

- En la clausula WHERE:
- Remover los parentecis inecesarios.
- Las constantes con indices se evaluan solo una vez.
- Count(*) sin WHERE, es obtenido de la información del cabcesero de la tabla.
- Para cada tabla en un join, 
- Las tablas constantes son leidas antes que cualquier otra tabla; las tablas constantes son, tablas vacias o con un solo registro, 
tablas que son usadas en WHERE en una llave primaria o unica.
-  La mejor forma de 

No hay comentarios.:

Publicar un comentario