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

时间:2016-05-05 09:21:10

标签: mysql onchange

MySQL新手。

我有一个庞大的数据库(大约3300万行)。 每隔X秒添加一行。

DATE_TIME存储为主键。 记录渐进式INDEX(unsigned int)。它只会增长。 当然DATE_TIME和INDEX已经排序了。

完整的结构是:

DATE_TIME, INDEX, SOME_VAL1, SOME_VAL2

我只需找到INDEX更改的行。 获得此项的最快查询是什么?

2 个答案:

答案 0 :(得分:2)

select FIRST(date_time), index, FIRST(some_val1), FIRST(some_val2)
from YOURTABLE
group by index

答案 1 :(得分:1)

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上的索引。