Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/12/2010, 22:03
omars_1886
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 5 meses
Puntos: 0
Ayuda con consulta Mysql

Es la primera vez que escribo y espero me puedan ayudar, escribo en este foro debido a que tengo un inconveniente en mi trabajo me encargaron hacer un sistema que permita advertir a los encargados de monitorear sobre el cambio de estado de unos dispositivos que se tiene, para ello tengo acceso a la base de datos pero los datos que voy a manejar solo se encuentran en una tabla que contiene más de 20 mil registros y cada minuto que pasa cada dispositivo envía datos entre ellos el estado es decir que la tabla está en constante crecimiento ya que como digo los registros se incrementan por cada dispositivo que envía datos por el momento se tiene 200 dispositivos que están reportando a cada minuto.
Mi pregunta es ¿cómo podría hacer para recorrer dicha tabla pero no toda es decir si esta tiene suponiendo 25300 el día de hoy a una determinada hora como puedo hacer para que la consulta que tengo no me recorra los 25300 sino que tal vez solo recorra los últimos 300 registros que se insertaron en la tabla?, ya que lo que quiero es que en la aplicación cada minuto muestre los dispositivos que su estado ha cambiado (cuando el estado está en cero es normal pero cuando está en uno se debe mostrar en la aplicación).

La tabla tiene los siguientes campos:cuenta,CodigoDispositivo,timestamp,estado.

La consulta que yo hice es: SELECT * FROM gts.EventData WHERE (estado =1 and timestamp>unix_timestamp(now())-1000) GROUP BY placa Limit 0,300

Si me llega a mostrar los datos que quiero pero se demora en mostrar los resultados, porque creo que me recorre todos los registros de la tabla es decir los 25300 y no solo los 300 últimos registros registrados… y estos registros aumentan por lo tanto al pasar los días la respuesta será mucho mayor.

Por favor espero que me puedan ayudar para solucionar este problema que tengo. Gracias