读书人

sql 的索引疑问解决方法

发布时间: 2012-03-13 11:21:11 作者: rapoo

sql 的索引疑问
使用sqlite记录数据
CREATE TABLE a(Time INTERGE, Address INTERGE, ....);
希望可以比较快速的以Time或者Address来查询,所以创建了索引, 有以下方法:
1.
CREATE INDEX iTime ONa(Time);
CREATE INDEX iAddrONa(Address);
2.
CREATE INDEX iTimeAddr ONa(Time, Address);
3、
CREATE INDEX iAddrTime ONa(Address,Time);

用第2方法创建的索引,并不能提高如
select * from a order by Address ;
这样查询的速度(方法3也不能提高以Time排序的查询)。


请问各位:第二,三方法在某些情况有什么优点?
或者各位小结一下索引的创建注意事项~ 谢谢


[解决办法]
select * from a order by Address ;
这种还是最慢的全表扫描啊 根本用不到索引

索引的优势在与快速定位少量数据
[解决办法]
1 可以用到索引。 CREATE INDEX iAddrONa(Address);

3. 可以利用索引 iAddrTime ONa(Address,Time);

但2无法利用这个索引。
[解决办法]

探讨
select * from a order by Address ;
这种还是最慢的全表扫描啊 根本用不到索引

索引的优势在与快速定位少量数据

[解决办法]
如果可以的话,
上传你的DB到www.access911.net/csdn
,用WINRAR压缩

sqlite> EXPLAIN select Time from a order by Time;

贴结果出来看看
[解决办法]
参考 :
http://sqlite.org/opcode.html

读书人网 >其他数据库

热点推荐