Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/11/2014, 14:08
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Optimar consulta SELECT

Hola de nuevo David_Carrera_G:

Cita:
Esto pasa, porque las tablas se cargan a través de procesos automáticos, los cuales sacan los datos de unos TXT y EXCEL respectivamente, según el anterior DBA estas no debían poseer indices
Vayamos por partes... usualmente, cuando haces CARGAS MASIVAS DE INFORMACION, efectivamente, no utilizas índices, para hacer más rápidas las inserciones, sin embargo, esto sólo aplica para tablas temporales. En un Modelo de BD's "Definitivo" DEBES SIEMPRE UTILIZAR INTEGRIDAD REFERENCIAL.

Uno de mis maestros en la universidad dijo alguna vez: Una Base de Datos sin integridad referencial es simplemente un montón de basura...

Cuando tienes necesidad de importar información desde archivos planos como TXT o Hojas de cálculo de EXCEL, lo más recomendable es que lo hagas a través de TABLAS TEMPORALES SIN INDICES, ya que efectivamente, esto hace que la carga de la información sea más rápida. Una vez que tienes cargada la información en las tablas temporales, entonces lo conveniente es activar los índices y entonces sí, pasar la información hacia las tablas definitivas. Insisto, el omitir los indices y llaves, debería ser sólo para hacer inserciones masivas, pero NUNCA DEBERÍA SER UNA PRÁCTICA GENERAL.

En cuanto a los índices, hay que diferenciar los campos llaves (PK, FK) a índices comunes... aunque pareciera que estamos hablando de lo mismo, no es así. Los índices pueden definirse sobre cualquier campo, INDEPENDIENTEMENTE DE SI SON LLAVES O NO... y por otro lado, una LLAVE es por defecto un tipo especial de índice. Te recomiendo que le des un vistazo a la teoría, checa en primer lugar estas dos ligas:

http://dev.mysql.com/doc/refman/5.0/...l-indexes.html
http://www.dimensis.com/consejos-1-1.html

Esto creo que te puede ser de utilizad.

Saludos
Leo.