索引选择性与前缀索引优化策略.pdfVIP

  • 0
  • 0
  • 约1.71千字
  • 约 3页
  • 2026-07-15 发布于北京
  • 举报

既然索引可以加快查询速度,那么是不是只要是查询语句需要,就建上索引?是否定的。因为索引

虽然加快了查询速度,但索引也是有代价的:索引文件本身要消耗空间,同时索引会加重、删

除和修改记录时的负担,另外,MySQL在运行时也要消耗资源索引,因此索引并不是越多越好。一

般两种情况下不建议建索引。

第一种情况是表记录比较少,例如一两千条甚至只有几百条记录的表,没必要建索引,让查询做全表扫

描就好了。至于多少条记录才算多,这个个人有个人的看法,我个人的经验是以2000作为分界线,记录

数不超过2000可以考虑不建索引,超过2000条可以酌情考虑索引。

另一种不建议建索引的情况是索引的选择性较低。所谓索引的选择性(Selectivity),是指不重复的索

引值(也叫基数,Cardinality)与表记录数(#T)的比值:

IndexSelectivityCardinality/#T

显然选择性的取值范围为(0,1],选择性越高的索引价值越大,这是由B+Tree的性质决定的。例如,上

文用到的employees.tit表,如果title字段经常被单独查询,是否需要建索引,我们

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档