表结构:
create table a
(
id integer auto_increment,
dt bigint,
a1 text,
a2 integer
)engine=innodb;
假设二千万数据,使用语句可以在1秒内查询出最小ID或最大ID
create table a
(
id integer auto_increment,
dt bigint,
a1 text,
a2 integer
)engine=innodb;
假设二千万数据,使用语句可以在1秒内查询出最小ID或最大ID
select max(id),min(id) from a
select id from a where dt=时间(起始时间) order by id limit 1;这个可以达到要求,可是又不能保证这个时段一定有数据。
from tb
order by id desc
limit 1select id
from tb
order by id
limit 1
假设在这一时段内没有数据,也是一个要解决的问题
若select id from a where dt>=时间(起始时间) order by id limit 1;
这速度又快不起来 能在指定的时间范围内在1至2秒的时间里找到最大ID与最小ID即可。
DT、ID上建立复合索引没有
如果dt 上没有索引,则无法优化。 关键是你想实现什么?