本帖最后由 sea267 于 2012-12-26 14:22:09 编辑

解决方案 »

  1.   

    这个,很正常啊。
    也不可能每次都index啊。
    现在问题的关键是:你为何一定要用到索引值。
    你要实现什么??
      

  2.   

     因为表中数据很多 不使用索引就要全表扫描了 很卡 。我想实现的是 通过 CALL_DATE 或 CALL_DATE 组合其他字段查询某段时间的记录。条件不固定,但call_date 是必选!~
      

  3.   

    可以强制使用索引 select * from data_log  force index(call_date) 
    where call_date between '2012-11-14 08:00:00' and '2012-11-14 23:59:59';
      

  4.   

    可以强制使用索引 select * from data_log where call_date force index(call_date) 
    between '2012-11-14 08:00:00' and '2012-11-14 23:59:59';
      

  5.   

    一般情况下,当MYSQL估计符合条件的记录大于总记录的 30% 的情况下,就会直接使用全表扫描而不再使用索引。
      

  6.   

     多谢!~ 
    还有个问题请教下 ,我装了mysql5.5.28 给data_log 表按月分了几个区,再次查询,扫描数是少了,可速度却变慢了,这是咋个情况啊?!难道mysql5.5.28 的查询性能还比不上5.0.9?