美文网首页
一文带你了解 MySQL 中的索引有哪些

一文带你了解 MySQL 中的索引有哪些

作者: AydanLinux | 来源:发表于2020-10-16 21:38 被阅读0次

在讲解Mysql的索引之前,先来了解一下什么是索引?

索引是对数据库中表的一列或者多列的值进行排序的一种数据结构,如果把数据库中的表比作一本书的话,索引就是这本书的目录,通过索引可以很快速的查找到书中指定内容所在的位置

那么Mysql中的索引具体都有哪些呢?

首先从逻辑角度来看分为

(1).普通索引:普通索引是最基本的索引,它没有任何限制,允许在定义索引的列中插入重复值和空值

(2).唯一索引:索引的值必须唯一,允许有空值,如果是组合索引,列值得组合必须唯一

(3).主键索引:它是一种特殊的唯一索引,一张表只能有一个主键,不允许有空值,一般是在创建表的时候指定主键,主键默认就是主键索引

(4).组合索引:多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用

(5).全文索引:它更像是一个搜索引擎,用来查找文本中的关键字,而不是直接与索引中的值比较,全文索引需要配合match against操作使用,而不是一般的where和like

(6).空间索引:空间索引是对空间数据类型的字段建立的索引,创建空间索引的列,必须被声明为not null

从物理存储角度分为聚集索引和非聚集索引

聚集索引:一张表中只能包含一个聚集索引,但是这个索引可以包含多个列,聚集索引用来确定表中数据的物理顺序

从数据结构角度分为hash索引和B+Tree索引

(1).hash索引:hash索引顾名思义基于hash表实现,hash索引中存储的就是hash码,存储引擎会为hash索引中的每一列都计算一个hash码

(2).B+Tree索引:InnoDB和MyISAM存储引擎默认使用的是B+Tree索引,Mermory搜索引擎默认使用的hash索引

相关文章

  • 一文带你了解 MySQL 中的索引有哪些

    在讲解Mysql的索引之前,先来了解一下什么是索引? 索引是对数据库中表的一列或者多列的值进行排序的一种数据结构,...

  • 20、MySQL 索引类型有哪些?

    MySQL 索引类型有哪些? 主键索引 索引列中的值必须是唯一的,不允许有空值。 普通索引 MySQL中基本索引类...

  • Mysql 索引

    Mysql 索引的目的 索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数。 Mysql 有哪些索引 普通索引...

  • Mysql面试题

    文章目录 MySQL 索引使用有哪些注意事项呢?索引哪些情况会失效索引不适合哪些场景 MySQL 遇到过死锁问题吗...

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

    提问:常见索引有哪些? 1、索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数...

  • MySQL之索引

    MySQL索引有哪些 索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构,由存储引擎实现。mysql中...

  • MySQL数据库

    索引有哪些,用性别做联合索引有没有效果 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数...

  • BAJT 中高级 Java 面试题,你能答上几道?附答案

    数据库 使用mysql索引都有哪些原则?索引什么数据结构?B+tree和B tree什么区别? mysql有哪些存...

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

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

  • Mysql索引失效

    mysql 索引失效的原因有哪些?Mysql索引失效的原因 1、最佳左前缀原则——如果索引了多列,要遵守最左前缀原...

网友评论

      本文标题:一文带你了解 MySQL 中的索引有哪些

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