表结构:
create table a
(
  id integer auto_increment,
  dt bigint,
  a1 text,
  a2 integer
)engine=innodb;
假设二千万数据,使用语句可以在1秒内查询出最小ID或最大ID

解决方案 »

  1.   

    详细说明
    select max(id),min(id) from a
      

  2.   

    主要目的是为了,将时间转为ID
    select id from a where dt=时间(起始时间) order by id limit 1;这个可以达到要求,可是又不能保证这个时段一定有数据。
      

  3.   

    select  id
    from tb
    order by id desc
    limit 1select id
    from tb
    order by id
    limit 1
      

  4.   

    无时间范围,在千万级的数据量加了时间限制使用limit 1感觉速度也不一定乐观
      

  5.   


    假设在这一时段内没有数据,也是一个要解决的问题  
    若select id from a where dt>=时间(起始时间) order by id limit 1;
    这速度又快不起来 能在指定的时间范围内在1至2秒的时间里找到最大ID与最小ID即可。
      

  6.   

    SQL语句有了,索引情况?
    DT、ID上建立复合索引没有
      

  7.   

    mysql如果id是主键,似乎没必要见联合索引吧
      

  8.   

    select id from a where dt>=时间(起始时间) order by id limit 1;
    如果dt 上没有索引,则无法优化。 关键是你想实现什么?
      

  9.   

    dt上面没有索引,针对dt的查询又要提升速度,那是不可能的