Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] optimizar select en una tabla de 60.000 registros

Estas en el tema de optimizar select en una tabla de 60.000 registros en el foro de PHP en Foros del Web. Tengo una tabla con mas de 60.000 enlaces. Y lo que hago muchas veces es comprobar si un enlace en concreto esta en esa tabla. ...
  #1 (permalink)  
Antiguo 17/02/2016, 14:53
 
Fecha de Ingreso: julio-2012
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta optimizar select en una tabla de 60.000 registros

Tengo una tabla con mas de 60.000 enlaces. Y lo que hago muchas veces es comprobar si un enlace en concreto esta en esa tabla. Y claro es muy lento. ¿Hay alguna forma de optimizar la tabla? por que la consulta es imposible
"SELECT count(*) from sugerencias where enlace='$enlace'"

¿Que puedo hacer a la tabla?
  #2 (permalink)  
Antiguo 17/02/2016, 14:56
Avatar de 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: optimizar select en una tabla de 60.000 registros

Cita:
¿Que puedo hacer a la tabla?
Indexar ese campo "enlace", es la unica posibilidad para optimizar una query tan básica.
Por su lado, si el campo es TEXT, deberás indexarlo con una función que recorte el rango indexado a una cantidad X de caracteres, ya que no es posible, en MySQL al menos, indexar un campo TEXT completo (limitaciones de longitud de clave de indice).

Por cierto, este tema es OFF TOPIC en PHP. La base de datos es ajena al lenguaje que la usa.
Hay un foro específico para temas de BBDD. Usalo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/02/2016, 12:08
 
Fecha de Ingreso: julio-2012
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: optimizar select en una tabla de 60.000 registros

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Indexar ese campo "enlace", es la unica posibilidad para optimizar una query tan básica.
Por su lado, si el campo es TEXT, deberás indexarlo con una función que recorte el rango indexado a una cantidad X de caracteres, ya que no es posible, en MySQL al menos, indexar un campo TEXT completo (limitaciones de longitud de clave de indice).

Por cierto, este tema es OFF TOPIC en PHP. La base de datos es ajena al lenguaje que la usa.
Hay un foro específico para temas de BBDD. Usalo.
Sobre lo ultimo... pense que ya estaba. Navegue hasta donde aparecían preguntas sobre mysql e hice la pregunta en ese subforo. El porque se ha movido no lo se.

Sobre la respuesta. Voy a mirar a ver que puedo hacer.

(Y pensaba que había configurado para recibir el aviso)

Pos Data.
El campo era un varchar(300) le he puesto un indice y en la pruebas que he hecho a pasado de 0,23 segundos a 0,0023 segundos O_O

Última edición por marioquartz; 21/02/2016 a las 12:17

Etiquetas: mysql, query
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 20:15.