[英]MySQL, detect row value change on sorted index
MySQL新手。
我有一个庞大的数据库(大约3300万行)。 每隔X秒添加一行。
DATE_TIME存储为主键。 记录渐进式INDEX(unsigned int)。 它只会增长。 当然DATE_TIME和INDEX已经排序了。
完整的结构是:
DATE_TIME, INDEX, SOME_VAL1, SOME_VAL2
我只需要找到INDEX改变的行。 获得此项的最快查询是什么?
select FIRST(date_time), index, FIRST(some_val1), FIRST(some_val2)
from YOURTABLE
group by index
select *
from mytable t
where t.DATE_TIME = (
select min(DATE_TIME)
from mytable t1
where t1.INDEX = t.INDEX
)
要么
select t2.*
from (
select min(t1.DATE_TIME) as DATE_TIME
from mytable t1
group by t1.INDEX
) t1
join mytable t2
on t2.DATE_TIME = t1.DATE_TIME
第二个查询可能更快。 您需要INDEX
列上的INDEX
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.