当前位置:网站首页>Mysql 索引
Mysql 索引
2022-04-23 06:23:00 【cqwoniu】
1、什么是索引
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
2、索引的分类
a、主键索引:设置为主键后数据会自动建立索引,innodb为聚簇索引。
b、单值索引:即一个索引包含单个列,一个表可以有多个单列索引,也叫普通索引
c、唯一索引:索引的值必须唯一,但允许有空值,它和主键索引的最大区别是主键索引不能有空值,但是唯一索引允许有一个空值
d、复合索引:即一个索引包含多个列
e、全文索引:innodb不支持,fulltext类型。

3、索引的原理
底层采用的是B+树的结构,只有叶子结点才能存储key和数据,非叶子结点只能存放key.
B+树每个节点可以包含更多的节点,这样降低了树的高度,数据范围变为多个区间,区间越多,数据检索速度越快。叶子节点两两连指针相互连接,符合磁盘的预读特性,顺序查询性能更高。
为什么没有选择B树,因为B树要求非叶子结点必须存放数据。

4、聚簇索引和非聚簇索引的区别
聚簇索引将数据存储与索引放到了一块,索引结构的叶子结点保存了数据,主键索引一定是聚簇索引;
非聚簇索引将数据与索引分开存储,索引结构的叶子结点指向了数据对应的位置。
在innodb中,在聚簇索引上创建的索引称之为辅助索引,非聚簇索引称之为辅助索引。
5、聚簇索引的优势,聚簇索引需要注意什么,为什么主键通常建议自增id

6、什么情况下无法利用索引
7、Innodb与Myisam的区别

版权声明
本文为[cqwoniu]所创,转载请带上原文链接,感谢
https://blog.csdn.net/cqwoniu/article/details/124151767
边栏推荐
猜你喜欢

配置npm

学习笔记6-几种深度学习卷积神经网络的总结

keytool: command not found

记录一下使用v-print中遇到的问题

How does the public and Private Integrated walkie talkie realize cooperative work under multi-mode communication?

How to improve the service efficiency of the hotel without blind spots and long endurance | public and Private Integrated walkie talkie?

Javscript gets the real suffix of the file

基于可视化结构的身份证号码校验系统-树莓派实现

菜菜的刷题日记 | 238.除自身以外数组的乘积

javscript获取文件真实后缀名
随机推荐
anaconda3安装
keytool: command not found
页面动态显示时间(升级版)
基于可视化结构的身份证号码校验系统-树莓派实现
[LNOI2014]LCA——树链剖分——多点LCA深度和问题
manjaro安装与配置(vscode,微信,美化,输入法)
可视化常见绘图(五)散点图
菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记
Typora语法详解(一)
How does the public and Private Integrated walkie talkie realize cooperative work under multi-mode communication?
Take you to travel in space, and American photography technology provides comprehensive technical support for aerospace creative applet
简单易懂的子集dp
7.子查询
Meishe helps Baidu "Duka editing" to make knowledge creation easier
Discussion on frame construction and technology selection of short video platform
小程序换行符\n失效问题解决-日常踩坑
按需引入vant组件
后台管理系统框架,总有你想要的
colab
【TED系列】一个习惯是如何改变我的一生