Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2008, 08:54
Mikelon85
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 4 meses
Puntos: 3
Problema con busqueda en mySQL

Hola, a ver como os explico.

Tengo un buscador que hace uso de 2 tablas.

archivos y tags.

La estructura de archivos es la siguiente:

id,titulo,info,...

La de la tabla tags:

id,idfile,tag

idfile, coincidiría con la id de la tabla archivos, es decir, imaginaros que meto un registro en la base de
datos así.

"Tutorial php avanzado"

en la tabla archivos se guardaría:

id -> 10
titulo -> Tutorial php avanzado
info -> blablablalbalblabla

y en la tabla de tags:

id -> 1
idfile-> 10
tag -> Tutorial

----

id -> 2
idfile-> 10
tag -> php

---

id -> 3
idfile-> 10
tag -> avanzado

¿¿Hasta aquí me explico??

El caso es que al hacer la busqueda la hago así:

Código PHP:
$sacar =     "SELECT DISTINCT idfile\r\n" 
            
"FROM tags AS found_file\r\n" 
            
"WHERE (tag = '{$tags[0]}')\r\n";
    for (
$x 1$x count($tags); $x++) {
          
$sacar .= "AND (0 < (SELECT COUNT(id) FROM tags WHERE tag = '{$tags[$x]}' AND idfile = found_file.idfile))\r\n";
    }
        
$sacar .= "LIMIT $ini,$prints\r\n";
        
$sacar mysql_query($sacar);
        for (
$n=0;$n<10;$n++) 
        { 
        
$dataultimos mysql_fetch_assoc($sacar);
        
MAS CODIGO
        

La tabla tags tiene cerca de 3.000.000 registros y se queda bloqueada o tarda mucho en mostrar los registros.

Necesito ayuda, o para reestructurar las tablas o para cambiar el codigo que parece que hace que la tabla se me quede frita.

Muchas gracias
__________________
aste nagusia