我用的是 sqlite 。  
title字段生成了400万条 1-100 之间的数据。
表名: abc
字段:
ID  Title
..  ...Title字段未索引前:
select * from abc where title>80   耗时平均 4.0秒
select * from abc where title=80            1.7秒索引后:
select * from abc where title>80   耗时平均 9.0秒   【速度慢了一倍】
select * from abc where title=80            0.5秒   【速度是未索引的三倍】小弟最近对这个索引感兴趣。 我加了Title字段索引后,数据库大了一倍。 特此发此问题求解释下。   

解决方案 »

  1.   

    加了索引,IO次数未必会减少。源于>80的记录太多的原因,走索引,可能要访问更多的IO块。
    跟结果占表中数据的比例有关系。
    而=80,走索引,很快就能定位。
      

  2.   

    要看你返回的记录数,才能决定是否使用索引,另外,你可以用explain看看这个sql,应该是都没有使用索引。
      

  3.   

    不管什么库, 400万条数据的表查某一(title)字段的》操作,加索引比 不加索引慢,都不合理!