create table aa(
aa_date date,
aa_server int(2),
key aa_date(date)
);
insert into aa('2011-11-03',0);查询
explain select * from aa where aa_date>=?;
或者
explain select * from aa where aa_date<=?;后面的查询离职检索出的列超过一定数量就不会引用索引了,>=超过230就不会引用索引了,type是all,后面的说明也没有用到索引而写成
explain select date from aa where aa_date<=?;
又可以引用到,怎么样在查询全部字段的情况下用到索引。求高手解释并赐教谢谢

解决方案 »

  1.   

    用不到索引说明mysql考虑到走索引的消耗比不走索引更大 
      

  2.   

    内网的数据,贴不出来。就是随便插几百天的数据,当查询条件的天数占数据中大部分时,索引引用不到
    explain查出来的数据    key是null,type 也是all  row是检索了全表行数
      

  3.   

    当MYSQL认为符合条件的记录所占的比例较大时,MYSQL就不会再使用索引,而是直接全面扫描。
      

  4.   

    当mysql的数据量条件中占的比例比较大时候,是不走索引的。
      

  5.   

    mysql的数据量比较大,符合条件的记录比较多的时候,mysql
    全表扫描时不走索引的。
      

  6.   

    找了下 找不到 你不用主键 用index看看