Dudas de consulta SQL

Iniciado por Skeletron, 6 Diciembre 2009, 21:38 PM

0 Miembros y 1 Visitante están viendo este tema.

^Tifa^

Hola.

Desconozco a ciencia cierta en que se basaron para decirte que dar uso de 2 indices retardaria una consulta. Podria retardar retornarte valores por el mero hecho de que debe indagar mas registros para dar exactamente con lo que buscas pero, es preferible de antemano usarlos ante no usarlos. Sino usas consultas basando tu busquedad en indices el motor tendra que buscar en toda la data y todos los indices para encontrar lo que buscas, y si tu motor esta en Myisam por ejemplo es aun un poco mas mortificante porque la data se divide en 2 archivos terminados en MYD = Data y MYI = indices entonces la lectura va 1 linea del archivo data y saltar a 1 linea del archivo indice, y retornar a 1 linea del archivo data y saltar a leer 1 linea del archivo indice y asi sucesivamente hasta dar con el objetivo de tu busquedad, esto genera mucho I/O en el disco cuando se hacen busquedad sin indices. Sin embargo si filtras tu busquedad por indices al menos el optimizador del motor buscara exactamente en el archivo indice y cuando de con el resultado ya sabra exactamente que registro sacar del archivo data. (Aunque todo depende de que motor de DB estemos hablando y el motor de almacenamiento en cuestion) en este caso hablo de MySQL que es el que estas usando.

Otra consultita:
Un "PRIMARY", tambien funciona como INDICE?

Sip, los primary key te crean un indice en el campo que es PK.

Skeletron

Perfecto!
Creo que no queda mas nada por preguntar :D

Muchisimas gracias! como siempre!