信息发布→ 登录 注册 退出

MySQL索引知识点分析

发布时间:2023-05-27

点击量:

    1索引的概念

    1.1定义

    索引在关系型数据库中,是一种单独的、物理的对数据库表中的一列或者多列值进行排序的一种存储结构,它是某个表中一列或者若干列值的集合,还有指向表中物理标识这些值的数据页的逻辑指针清单。
    索引的作用相当于图书的目录,可以根据目录重点页码快速找到所需要的内容,数据库使用索引以找到特定值,然后顺着指针找到包含该值的行,这样可以是对应于表的sql语句执行得更快,可快速访问数据库表中的特定信息。

    1.2类型

    InnoDB包含三种索引类型,分别为普通索引、唯一索引(主键索引为一种特殊的非空唯一索引)、全文索引。

    重写为:普通索引又称非唯一索引,没有任何限制。唯一(Unique):唯一索引要求键值不能重复(可以为空),主键索引其实是一种特殊的唯一索引,不过他还多了一个限制条件,要求键值不能为空。主键索引用 primary key 创建。全文(Fulltext):针对比较大的数据,比如我们存放是文章,课文,邮件,等等,有可能一个字段就需要几kb,如果要解决like查询在全文匹配的时候效率低下的问题,可以创建全文索引。仅限于char、varchar、text类型的字段可创建全文索引。MyISAM和InnoDB都支持全文索引。

    1.3作用

    一句话总结:

    索引能够提高数据检索的效率,降低数据库的IO成本

    提出问题:我们用空间换时间,但是他的数据结构、查询的IO成本、以及是如何存储数据的呢?

    2索引的数据结构B+树的演进过程

    我们以一个 Page 的视角去看我们的B+树演进过程。

    页是InnoDB管理存储空间的基本单位,InnoDB将数据库中的数据都是存储在页这个基本存储单位⾥的;页也是内存和磁盘交互的基本单位,数据库从磁盘中读取若⼲个页⼤⼩的数据到内存,也将内存中若⼲个页⼤⼩的数据刷新到磁盘中。⼀个页的内存⼤⼩为16KB。

    假设我们要执行这个SQL,得到了10条记录:

    SELECT * FROM INNODB_USER LIMIT 0 , 10;
    标签:
    在线客服
    服务热线

    服务热线

    13331157271

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    微信号:

    (点击微信号复制,添加好友)

    打开微信

    微信号已复制,请打开微信添加咨询详情!