Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/10/2014, 06:09
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cómo indexar la base de datos

Mira, todavía estoy revisando tu problema (también trabajo todo el día), pero en esencia el problema tiene varios frentes:
1) Las consultas son ineficientes por falta de indices en algunos casos, excesos de indices en otros, uso de subconsultas en el WHERE (ineficientes mayoritariamente), y utilizacion de JOINs imnplícitos (la coma), en lugar de explicitos.
2) Las tablas no están normalizadas, ni siquiera están en la 1FN, lo que obliga a realizar consultas completamente antiperformánticas. Si se las redujese, tendrías muchísimos menos problemas.
3) La selección de tipos de datos y sus longutudes es equivocada en muchos casos. El error de los tipos peude causar que los índices que se puedan crear no aporten suficiente optimización.
4) Los campos de TEXT deberían ser usados en índices de tipo FULLTEXT, aprovechando que usas tablas MySAM.
5) El uso de ORDER BY conspira contra el resultado ya que es una de las cláusulas asesinas de performance, en especial con consultas que devuelven muchos registros.
6) otros...

Es evidente, por algunos detalles, que estás basandote en documentación obsoleta (algo muy comun en la web), ya que te comento que un VARCHAR no mtiene actualmente un límitte de 255 caracteres. Eso ocurría hace casi diez años atrás, pero no ahora. El límite está bastante más arriba, y ese cambio podría ayudar a evitar usar columnas de tipo TEXT, que exigen al motor de base de datos otro tipo de recursos.
Esta noche termino de mirar bien lo que has posteado pero desde ya hasy bastante que se puede mejorar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)