MySQL新手。
我有一个庞大的数据库(大约3300万行)。 每隔X秒添加一行。
DATE_TIME存储为主键。 记录渐进式INDEX(unsigned int)。它只会增长。 当然DATE_TIME和INDEX已经排序了。
完整的结构是:
DATE_TIME, INDEX, SOME_VAL1, SOME_VAL2
我只需找到INDEX更改的行。 获得此项的最快查询是什么?
答案 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
上的索引。