美文网首页数据库小计
索引的设计原则

索引的设计原则

作者: 祁小彬 | 来源:发表于2022-03-02 07:15 被阅读0次
    1. 选择唯一性索引
      唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。
    1. 为经常需要排序、分组和联合操作的字段建立索引
      经常需要 ORDER BY、GROUP BY、DISTINCT 和 UNION 等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。
    1. 为常作为查询条件的字段建立索引
      如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度。因此,为这样的字段建立索引,可以提高整个表的查询速度。
      注意:常查询条件的字段不一定是所要选择的列,换句话说,最适合索引的列是出现在 WHERE 子句中的列,或连接子句中指定的列,而不是出现在 SELECT 关键字后的选择列表中的列。
    1. 限制索引的数目
      索引的数目不是“越多越好”。每个索引都需要占用磁盘空间,索引越多,需要的磁盘空间就越大。在修改表的内容时,索引必须进行更新,有时还可能需要重构。因此,索引越多,更新表的时间就越长。

如果有一个索引很少利用或从不使用,那么会不必要地减缓表的修改速度。此外,MySQL 在生成一个执行计划时,要考虑各个索引,这也要花费时间。创建多余的索引给查询优化带来了更多的工作。索引太多,也可能会使 MySQL 选择不到所要使用的最佳索引。

    1. 尽量使用数据量少的索引
      如果索引的值很长,那么查询的速度会受到影响。例如,对一个 CHAR(100) 类型的字段进行全文检索需要的时间肯定要比对 CHAR(10) 类型的字段需要的时间要多。
    1. 数据量小的表最好不要使用索引
      由于数据较小,查询花费的时间可能比遍历索引的时间还要短,索引可能不会产生优化效果。
    1. 尽量使用前缀来索引
      如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT 和 BLOG 类型的字段,进行全文检索会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。
    1. 删除不再使用或者很少使用的索引
      表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。应该定期找出这些索引,将它们删除,从而减少索引对更新操作的影响。

相关文章

  • MySQL5.7从入门到精通(9-12章)--索引、存储过程、视

    第9章 索引 9.1 索引简介 9.1.1 索引的含义和特点 9.1.2 索引的分类 9.1.3 索引的设计原则 ...

  • 索引的设计原则

    选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。...

  • mysql索引原则

    索引的设计可以遵循一定的原则,符合这些原则的索引,能够提高索引的使用效率。 1.搜索的索引列 要建索引的列不一定是...

  • 数据库索引相关

    1、设计索引原则: 2、BTREE索引和HASH索引 3、explain sql语句结果中的type属性 4、My...

  • MySQL索引

    1.建立索引的原则 ①综合某个表的各种查询条件,设计的联合索引尽量满足最左前缀匹配原则 ②选择区分度高的类作为索引列

  • MySQL InnoDB索引设计指南

    一、索引设计原则 在MySQL中常用的B+树索引分为聚簇索引和辅助索引,关于辅助索引,虽然个数没有限制(聚簇索引一...

  • 简介Mysql的索引和视图

    索引 索引相当于字典中的查找条件,常用于快速找出某一列中一特定的值,使用索引可以提升查找的速度。 索引的设计原则 ...

  • MySQL索引优化

    索引设计使用原则 为了提升数据检索速度,降低查询延时和IO消耗,在建表或者编写SQL语句时,应该首先设计及检查索引...

  • MySql常见的索引优化和索引设计原则

    前言 mysql的优化最常见的就是对索引的优化,在《一文彻底读懂Explain[https://www.jians...

  • MySQL索引的数据结构

    建立索引的原则 最左前缀匹配原则 尽量选择重复度小的列 索引列不参与计算 尽量扩展索引,不要新建索引 索引的数据结...

网友评论

    本文标题:索引的设计原则

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