Ver Mensaje Individual
  #7 (permalink)  
Antiguo 06/11/2012, 22:15
rolygc
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Consulta sql con muchos and

A nivel de optimizacion ya depende de ti y el disenno y el patron ke estes siguiendo.

Logico mientras menos consultas y menos registros tengas mucho mas optimo.

tu tambien puedes ayudar a esa optimizacion con un mejor disenno de BD y estrucutras de los datos.

1- Como tienes la base de datos disennada ??
2- Tienes tipo MySAM o InnoDB
3- Usaras mas SELECT ke INSERT o UPDATE en esta tabla
3- Tienes primary key a valores unicos
4- Tienes index creados para las columnas ke mas vas a realizar la buskeda
5- Accederas local o a traves de la red

Tu mismo contestate estas preguntas y vas haciendo lo ke le llaman el tunning la sintonizacion para un mejor funcionamiento a tu proyecto.

Por supuesto ke mientras menos coneccion y menos consultas realices mas eficiente trabajaras depende por supuesto ke todo lo ke te dije anterior cantidad de registro a buscar con index es mas eficiente ke sin index

Prueba usar la clausara IN y no evaluar tanto OR

Código PHP:
$string '14|16|21|15|17|19';
$string str_replace("|"","$string);
$query mysql_query("SELECT usuarios FROM usuarios WHERE id IN ('$string')"); 
Y prueba todas las posibilidades ke se te ocurran a ver cual es la mas eficiente y ya sabras cual usar.

en tu mysql server escribe

EXPLAIN SELECT usuarion FROM usuarios WHERE id IN ('14,16,21,15,17,19');

EXPLAIN SELECT usuarios FROM usuarios WHERE id = '14' OR id='16' OR id='21' OR id='15' OR id='17' OR id='19'

y si no tienes index creados en el id columna crealo y veras ke es ams eifciente

espero te ayude, buena suerte

Última edición por rolygc; 07/11/2012 a las 08:17