繁体   English   中英

MySQL,检测排序索引的行值更改

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM