Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2008, 13:38
Mikelon85
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Busqueda muy lenta en base de datos

Hola, vereis tengo una tabla archivos con más de 500.000 registros, utilizo el siguiente código:

Código PHP:
$search_terms $_GET['q'];
$tags explode(" "$search_terms);
$sacar "SELECT DISTINCT id,titulo,rand,artist FROM archivos WHERE (titulo LIKE '%{$tags[0]}%' OR artist LIKE  '%{$tags[0]}%') ";
for (
$x 1$x count($tags); $x++) {
          
$sacar .= "AND (titulo LIKE '%{$tags[$x]}%' OR artist LIKE '%{$tags[$x]}%') ";
}
$sacar .= "LIMIT 10";
echo 
"Consulta al mysql: ".$sacar."<br><br>";
$ask mysql_query($sacar);
while (
$view mysql_fetch_assoc($ask)) {
$titulo $view["titulo"];
$rand $view["rand"];
$artist $view["artist"];
echo 
"<a target=blank href=listen.php?v=".$rand.">".$titulo." (".$artist.")</a>";
echo 
"<br>";


Si por ejemplo escribimos en el buscador: extremoduro ley innata, la consulta, con el código anterior queraría así:

SELECT DISTINCT id,titulo,rand,artist FROM archivos WHERE (titulo LIKE '%extremoduro%' OR artist LIKE '%extremoduro%') AND (titulo LIKE '%ley%' OR artist LIKE '%ley%') AND (titulo LIKE '%innata%' OR artist LIKE '%innata%') LIMIT 10

Pero es muy lento, tengo indices creados en titulo, rand y artista y aun asi, tarda muchisimo, que me sugeris?

Muchas gracias
__________________
aste nagusia