Foros del Web » Programando para Internet » PHP »

Problema saturación del mysql en busquedas

Estas en el tema de Problema saturación del mysql en busquedas en el foro de PHP en Foros del Web. Tengo la tabla tags con casi 2.000.000 de registros, está indexada, pero el buscador tiene que recorrer toda la tabla y satura el servidor del ...
  #1 (permalink)  
Antiguo 09/01/2008, 02:20
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 4 meses
Puntos: 3
Problema saturación del mysql en busquedas

Tengo la tabla tags con casi 2.000.000 de registros, está indexada, pero el buscador tiene que recorrer toda la tabla y satura el servidor del mysql. Habia pensado en crear cada 100.000 registros una tabla nueva (tags1, tags2, .... tagsn), y despues hacer un SELECT en las diferentes tablas. Creeis que es la mejor solución? Vosotros que hariais?

Saludos
__________________
aste nagusia
  #2 (permalink)  
Antiguo 09/01/2008, 06:37
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 4 meses
Puntos: 3
Re: Problema saturación del mysql en busquedas

he buscado por el foro y no he encontrado nada :(
__________________
aste nagusia
  #3 (permalink)  
Antiguo 09/01/2008, 08:10
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 18 años, 11 meses
Puntos: 4
Re: Problema saturación del mysql en busquedas

pues muchas veces no falta con indexar... a veces es necesario indexar BIEN.
Debes conocer un poco sobre la teoria de los indices y ver si realmente tus indices andan bien, ver los criterios de busqueda y comparar si estos se apegan a los indices, porque eso de "recorrer" toda la tabla es una busqueda secuencial no x indices.
Yo tengo uan BD con 10 M y pues con buenos indices anda bien.
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #4 (permalink)  
Antiguo 09/01/2008, 08:32
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 4 meses
Puntos: 3
Re: Problema saturación del mysql en busquedas

Cita:
Iniciado por xcars Ver Mensaje
pues muchas veces no falta con indexar... a veces es necesario indexar BIEN.
Debes conocer un poco sobre la teoria de los indices y ver si realmente tus indices andan bien, ver los criterios de busqueda y comparar si estos se apegan a los indices, porque eso de "recorrer" toda la tabla es una busqueda secuencial no x indices.
Yo tengo uan BD con 10 M y pues con buenos indices anda bien.
El problema puede ser el siguiente, me hacen más de 10 busquedas por segundo.

La tabla tiene los siguientes campos:



La busqueda la realizo de la siguiente manera:

$sacar = "SELECT DISTINCT idsong\r\n" .
"FROM tags AS found_song\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 idsong = found_song.idsong))\r\n";
}


Como la mejorariais??? es importante, gracias!
__________________
aste nagusia
  #5 (permalink)  
Antiguo 09/01/2008, 08:40
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 18 años, 11 meses
Puntos: 4
Re: Problema saturación del mysql en busquedas

Esto es lo que yo haria, y no digo que no se pueda mejorar de la forma en que tu lo estas haciendo, pero en mi caso te repito haria esto
primero pondria mi tabla como myisam y utilizaria un cotejamiento utf-8 y crearia un indice full-search text en el campo TAG y luego mi busqueda la haria asi

lo haria con MATCH y AGAINST
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #6 (permalink)  
Antiguo 11/03/2008, 05:40
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 4 meses
Puntos: 3
Re: Problema saturación del mysql en busquedas

No entiendo esto último
__________________
aste nagusia
  #7 (permalink)  
Antiguo 11/03/2008, 08:53
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: Problema saturación del mysql en busquedas

Yo creo que con que crees el indice full search text sera suficiente. deberia tirarte bastante bien, sobre todo si los tags son de pocos caracteres.
  #8 (permalink)  
Antiguo 11/03/2008, 08:56
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: Problema saturación del mysql en busquedas

P.D.

En lugar de usar DISTINCT utiliza GROUP BY, creo que es un poco mas rapido.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:10.