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

optimización de Consulta muy lenta

Estas en el tema de optimización de Consulta muy lenta en el foro de Mysql en Foros del Web. Hola! Espero puedan ayudarme con el siguiente problema: tengo algunas consulta que en ocaciones puede llegar a demorar más de 10 segundos, todas estas consultas ...
  #1 (permalink)  
Antiguo 26/10/2012, 07:04
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
optimización de Consulta muy lenta

Hola!

Espero puedan ayudarme con el siguiente problema:

tengo algunas consulta que en ocaciones puede llegar a demorar más de 10 segundos, todas estas consultas tienen la instrucción "INTERVAL", como esta:

Código MySQL:
Ver original
  1. SELECT Pos,`Date` FROM `pack` WHERE `Id`='2012037' AND `mail`='4' AND `Date`>DATE_SUB(NOW(), INTERVAL 60 MINUTE) AND `AId`=7;

Lo que hace es obtener los datos de un paquete con una id específica, pero solo los registros que se hayan captado en los últimos 60 minutos.

La condición que retarda la consulta es esta parte:

`Date`>DATE_SUB(NOW(), INTERVAL 60 MINUTE)

Entonces, necesito una forma de lograr lo mismo pero con una alternativa más eficiente

Se agradece cualquier aporte

Saludos!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 26/10/2012, 07:46
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: optimización de Consulta muy lenta

Hola stramin:

En realidad no veo muchas cosas que se puedan obtimizar además del uso de índices en la consulta... haz un EXPLAIN a la consulta y dinos cuál es el resultado, para ver si hay algún problema, también sería conveniente que nos pongas cuál es la estructura de tu tabla y el número de registros que tienes, para ver si el problema va por ahí.

Saludos
Leo.
  #3 (permalink)  
Antiguo 26/10/2012, 08:22
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: optimización de Consulta muy lenta

Esto devuelve el explain:

id: 1
select_type: SIMPLE
table pack
type possible_keys: ALL
key: NULL
key_len: NULL
ref: NULL
rows: 1455998
Extra: Using where

Aprovecho de mencionar que la consulta tarda 0.1525 seg la mayoría de las veces, sin embargo en ocaciones aumenta a 10 segundos :S

Tabla pack
Id bigint(20) AUTO_INCREMENT
Date datetime
AlarmId int(11)
ChType int(11)
FSal int(11)
Pos int(11)
AId int(11)

esta tabla inserta 20 registros por segundo, por lo tanto en los 60 minutos pedidos devuelve más de 61.000 registros...
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 26/10/2012, 08:34
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: optimización de Consulta muy lenta

Hola de nuevo:

Por el resultado del EXPLAIN, creo que no tienes definidos llaves ni índices lo cual no es nada bueno. Dale un vistazo a esta liga

http://dev.mysql.com/doc/refman/5.0/es/explain.html

Ahí se detalla lo que te está arrojando el EXPLAIN, qué problemas tienes y las posibles soluciones.

Dices que la consulta normalmente se tarda muy poco, pero en ocasiones se tarda demasiado... podrías revisar por ejemplo si el comportamiento se da en horas pico, si coincide con algún otro proceso en la BD o en el servidor que pudiera bloquear temporalmente la tabla. hay muchas otras cosas que tienes que revisar.

Saludos
Leo.
  #5 (permalink)  
Antiguo 26/10/2012, 10:51
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: optimización de Consulta muy lenta

Bueno, he revisado todo, al parecer está todo bien, tal como dices, había un procedimiento de respaldo pero fue cambiado para hacerse solo una vez a la semana.

No es posible asignar llaves, ya que no es una tabla que esté bajo mi control, y hay muchos procesos que la utilizan, yo solo hago las lecturas :(

De todos modos gracias :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: lenta, optimización, registros, select
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 15:00.