美文网首页
MySQL索引详解(一)索引的分类

MySQL索引详解(一)索引的分类

作者: chanyi | 来源:发表于2020-03-23 19:54 被阅读0次

在表中查找数据的时候,如果使用索引,则可以很快的查找到,如果不是用索引,就只能在表中的数据里一个一个比对。
索引相关的内容按照以下的目录结构展开


索引结构图

此文先讲述第一条,索引的分类
索引大体分为四类,分别是单列索引,组合索引,全文索引和空间索引

1、单列索引

单列索引是只包含单个列的索引,一个表可以有多个单列索引。
单列索引分为三种类型,分别是普通索引,唯一索引和主键索引
普通索引
任何列都可以做普通索引,可以为空,值也可以重复
唯一索引
索引列中的值必须是唯一的,可以为空
主键索引
主键索引必须是唯一的,而且不能为空

2、组合索引

组合索引是有多列组合构成。
遵循最左原则,先按照第一列排序,然后按照第二列,依次往后排序。。。
使用联合索引有以下优点:
(1)、减少建立索引开销
根据最左原则,如果建立了一个(col1,col2,col3)三列的索引,那么就相当于建立了(col1),(col1,col2)和(col1,col2,col3)三个索引,但是建立的索引表只需要一个即可,减少了增删改对索引表的操作。
(2)、覆盖索引
如果要执行查询的字段就在索引中,则无需回表,减少随机io操作,提高性能
例如:select col1,col2,col3 from test where col1=1 and col2=2
(3)、效率高
索引列越多,查询的效率越高(当然这里要考虑表的读写频率)。和单列索引相比,如果执行如下操作:
select from table where col1=1 and col2=2 and col3=3
那么单列索引需要分为三步执行,需要回表,但是组合索引第一次查询的时候就会筛选出所需要的数据,效率要高的多。

3、全文索引

全文索引是指在CHAR,VARCHAR,TEXT类型字段上使用的索引。只有在MyISAM存储引擎上可以定义,只要是为了方便查找字符串中字符的匹配

4、空间索引

空间索引是对空间数据类型GEOMETRY、POINT、LINESTRING和POLYGON字段上建立的索引,只有MyISAM上可以定义


以上四种索引的使用实例见:《MySQL索引详解(二)索引的使用》


参考资料
1、《MySQL性能调优与架构设计》
2、https://www.jianshu.com/p/0d6c828d3c70

相关文章

  • 索引(二)

    mysql索引的新手入门详解mysql索引之三:索引使用注意规则 索引(Index)是帮助 MySQL 高效获取数...

  • MySQL索引详解(一)索引的分类

    在表中查找数据的时候,如果使用索引,则可以很快的查找到,如果不是用索引,就只能在表中的数据里一个一个比对。索引相关...

  • MySQL索引背后的数据结构及算法原理

    参考来源 mysql索引分析 MySQL索引背后的数据结构及算法原理 MySQL中EXPLAIN命令详解 索引连接...

  • MySQL 索引分类

    MySQL索引的分类(根据数据结构) 索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL...

  • MySQL部门培训-索引篇

    章节目录 MySQL索引学习路径 MySQL索引介绍 索引分类 索引建立技巧 小试牛刀-索引使用预判 explai...

  • MySQL索引详解(四)BTree为什么更适合做索引结构

    根据文章MySQL索引详解(三)索引的底层原理,了解了MySQL的索引实现原理,那么为什么在众多的数据结构中,索引...

  • MySQL索引原理及慢查询优化--整理

    摘自:MySQL索引原理及慢查询优化MySQL EXPLAIN详解 1 索引是什么 索引是一种单独的、物理的对数据...

  • 49-MySQL-索引的创建与删除

    一、索引分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等①:从功能逻辑上说...

  • 索引

    分类 mysql的索引分为单列索引(主键索引,唯一索引,普通索引)和组合索引.单列索引:一个索引只包含一个列组合索...

  • 索引

    MySQL索引原理及慢查询优化 索引的储存分类: BTREE索引和HASH索引。MyISAM 和 InnoDB 存...

网友评论

      本文标题:MySQL索引详解(一)索引的分类

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