美文网首页
如何合理设计并利用索引

如何合理设计并利用索引

作者: Tony4Buaa | 来源:发表于2017-11-15 13:37 被阅读0次

节选自《MySQL性能调优与架构设计》一书。

如何判定是否需要创建索引

  1. 较为频繁的作为查询条件的字段应该创建索引;
  2. 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件;(唯一性太差的字段主要是指哪些呢?如状态字段,类型字段等等这些字段中的数据可能总共就是那么几个几十个数值重复使用)(当一条Query所返回的数据超过了全表的15%的时候,就不应该再使用索引扫描来完成这个Query了)
  3. 更新非常频繁的字段不适合创建索引;(因为索引中的字段被更新的时候,不仅仅需要更新表中的数据,同时还要更新索引数据,以确保索引信息是准确的)
  4. 不会出现在WHERE子句中的字段不该创建索引;

对于选择合适索引的几点建议

  1. 对于单键索引,尽量选择针对当前Query过滤性更好的索引;
  2. 在选择组合索引的时候,当前Query中过滤性最好的字段在索引字段顺序中排列越靠前越好;
  3. 在选择组合索引的时候,尽量选择可以能够包含当前Query的WHERE子句中更多字段的索引;
  4. 尽可能通过分析统计信息和调整Query的写法来达到选择合适索引的目的而减少通过使用Hint认为控制索引的选择;

MySQL中索引的限制

  1. MyISAM存储引擎索引键长度总和不能超过1000字节;
    2 BLOB和TEXT类型的列只能创建前缀索引;
  2. MySQL目前不支持函数索引;
  3. 使用不等于的时候MySQL无法使用索引;
  4. 过滤字段使用了函数运算后,MySQL无法使用索引;
  5. Join语句中Join条件字段类型不一致的时候MySQL无法使用索引;
  6. 使用LIKE操作的时候如果条件以通配符开始MySQL无法使用索引;
  7. 使用非等值查询的时候MySQL无法使用Hash索引。

相关文章

  • 如何合理设计并利用索引

    节选自《MySQL性能调优与架构设计》一书。 如何判定是否需要创建索引 较为频繁的作为查询条件的字段应该创建索引;...

  • mysql优化(第十四天)

    MySQL如何优化 表的设计合理化(符合3NF); 添加适当索引(index) [四种: 普通索引、主键索引、唯一...

  • MySQL数据库优化

    一、MySQL如何优化1、表的设计合理化(符合3F)2、添加索引(普通索引、主键索引、唯一索引、全文索引)3、SQ...

  • 厨房如何装修设计才整洁实用?—大宅兔

    厨房如何装修设计才整洁实用?—大宅兔 厨房空间小,如何装修设计能有效合理的利用厨房空间,是每个家庭都要考虑的问题,...

  • MySQL优化手段

    MySQL优化手段总结 表的设计合理化(符合3NF) 添加适当索引(index) [五种: 普通索引、主键索引、唯...

  • 数据库优化

    性能优化 1. 表设计合理化,尽量满足三范式 2. 添加适当索引 [四种: 普通索引、主键索引、唯一索引、全文索引...

  • Mysql优化总结

    Mysql优化主要方向 表的设计合理化(符合3NF) 添加适当索引(index) [四种: 普通索引、主键索引、唯...

  • MySQL 索引

    MySQL索引的好处不言而喻,如果对MySQL正确合理设计并且使用索引就好像是一辆法拉利,然而没有设计和使用索引的...

  • mysql索引及类型

    一、什么是mysql索引? 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索...

  • 不良SQL的来源

    不良SQL的来源 一、不合理的索引设计---- 例:表record有620000行,试看在不同的索引下,下面几个 ...

网友评论

      本文标题:如何合理设计并利用索引

      本文链接:https://www.haomeiwen.com/subject/nnbcvxtx.html