8. 使用索引查询一定能提高查询的性能吗?为什么 5 z$ ~6 _- W* B4 X# O4 r& S
通常,通过索引查询数据比全表扫描要快.但是我们也必须注意到它的代价. 0 t% z# A% O6 @
索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时,索引本身也会被修改. 这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5 次的磁盘I/O. 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.使用索引查询不一定能提高查询性能,索引范围查询(INDEX RANGE SCAN)适用于两种情况:
* O! X u5 Z2 A8 L7 Y7 }* @0 a! z基于一个范围的检索,一般查询返回结果集小于表中记录数的30%宜采用;
, Z) h; E. R! Z" B* @基于非唯一性索引的检索
5 d# T' ~( H7 V5 ^3 m* c1 T / S3 m' A' E, J- `1 e2 q; N4 \5 O3 H
索引就是为了提高查询性能而存在的,如果在查询中索引没有提高性能,只能说是用错了索引,或者讲是场合不同 |