Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

es posible mejorar consulta COUNT

Estas en el tema de es posible mejorar consulta COUNT en el foro de Mysql en Foros del Web. tengo que contar registros de una tabla que optione unos 100.000, la consulta tarda casi un segundo lo veo exagerado que puede estar pasando. sql ...
  #1 (permalink)  
Antiguo 06/03/2015, 05:32
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
es posible mejorar consulta COUNT

tengo que contar registros de una tabla que optione unos 100.000, la consulta tarda casi un segundo lo veo exagerado que puede estar pasando.

sql

Código MySQL:
Ver original
  1. SELECT COUNT(id) FROM registros WHERE afiliado='nivel1' AND caracteristica='novato' AND activado=1 AND bloqueado=0

El unico index que tengo es el id que es prmary key, en los otros campos no creo ningun index ya que son campos que se repite su valor es decir afiliados son todos o nivel1 o nivel2 igual pasa con caracteristica, pero creo que mi consulta tarda demasiado, si alguien me aconseja algo mucho mejor.
  #2 (permalink)  
Antiguo 06/03/2015, 05:48
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, 5 meses
Puntos: 2658
Respuesta: es posible mejorar consulta COUNT

Código MySQL:
Ver original
  1. FROM registros
  2. WHERE afiliado='nivel1'
  3.     AND caracteristica='novato'
  4.     AND activado=1
  5.     AND bloqueado=0

Es una consulta muy básica, sólo puede optimizarse usando índices sobre uno o más de los campos del WHERE, pero sólo tendría efecto si hubiese muchas variaciones de valores en esos campos.
Es muy probable que el problema sea de la capacidad del hardware, o bien limitaciones de la configuración del servidor.
__________________
¿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 06/03/2015, 06:06
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: es posible mejorar consulta COUNT

Hola gnzsoloyo, entiendo que la consulta en si no se puede hacer nada, en realidad en otras consultas funcionan bastante bien tardan milesimas, entonces lo que comentas a que te refieres con las limitaciones de configuracion del servididor?
saludos.
  #4 (permalink)  
Antiguo 06/03/2015, 06:11
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, 5 meses
Puntos: 2658
Respuesta: es posible mejorar consulta COUNT

Yo dije que es muy probable, pero no seguro.
Por otro lado, ya te dije que en una consulta como esa sólo podría mejorar con índices, pero sólo bajo ciertas circunstancias.
Prueba sin usar el ID en el COUNT():
Código MySQL:
Ver original
  1. SELECT COUNT(*) totalRegistros
  2. FROM registros
  3. WHERE afiliado='nivel1'
  4.     AND caracteristica='novato'
  5.     AND activado=1
  6.     AND bloqueado=0
En determinados contextos podría haber cambios en el comportamiento.
Ten en cuenta que usar un campo para contar puede requerir también a MySQL que valide si es o no nulo lo que se lee, y un campo que es PK no puede ser nulo jamás, pero podría afectar el rendimiento de la consulta porque el parser lo derivase al algorimo que valida eso.
Hay que hacer una prueba.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/03/2015, 06:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: es posible mejorar consulta COUNT

Hola gracias por tu interes en ayudarme, anteriormente yo probe en el count eso y nada, que prueba hago para que me puedas ayudar mas?o donde puedo sacar informacion al respecto?
  #6 (permalink)  
Antiguo 06/03/2015, 09:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: es posible mejorar consulta COUNT

El problema esta en el where si dejo la consulta sin el where.

Código MySQL:
Ver original
  1. SELECT COUNT(id) FROM registros;

me tarda 0, en realidad son 200.000 registros y el count muestra 100.000 con el where tarda 0.80 s. Es excesivo o es lo que suelen tardar?
  #7 (permalink)  
Antiguo 06/03/2015, 09:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: es posible mejorar consulta COUNT

1 segundo para 200,000 no se me hace mucho.........
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campo, count, mejorar, posible, registro, select, sql, tabla
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 18:38.