首页 > 数据库 >mysql系列04---索引及性能分析

mysql系列04---索引及性能分析

时间:2024-04-25 16:22:05浏览次数:24  
标签:叶子 04 Tree 节点 --- 索引 mysql ref 主键

1、索引的结构

 mysql索引的数据结构,对经典的B+Tree进行了优化,在原B+Tree上增加了一个指向相邻叶子结点的链表指针,就形成了一个带有顺序指针的B+Tree,提高了区间访问的性能。

 选择B+Tree的优点:

a、相对于二叉树,层级更少,搜索效率更高

b、相对于B-Tree,B+Tree只在叶子节点上存储数据,而B-Tree在非叶子节点上也存了数据,这样存储的键减少,层级更高。

c、hash索引不支持排序和范围操作。

2、索引的分类

 聚集索引:又叫主键索引,叶子节点保存这一行的数据

非聚集索引:又叫常规索引、二级索引,叶子节点保存这一行的主键

 

3、性能分析工具---explain

a、使用方式:在select语句前加上explain

b、执行计划各字段的含义:

 id: 表的执行顺序,值相同执行顺序从上到下,值越大越先执行。

select_type:表示select的类型,simple表示单表查询;primary表示主查询也就是最外层的查询;union表示join的表;SUBQUERY子查询

type: 连接类型,性能由好到差的连接类型:NULL、system、const、eq_ref、ref、range、index、all

         NULL不访问任何表

         system访问系统表

        const使用主键索引

        eq_ref唯一索引

   ref非唯一索引

   range

        index虽然用了索引,但全遍历所有的索引

   all全表扫描

possible_keys:可能用到的索引

key:实际用到的索引

key_len:索引字段的长度

rows:扫描的行数,只是一个估值,并不太准确

filtered:返回的行数占总行数的百分比,值越大越好

extra:额外的信息

4、使用规则

 

5、设计原则

标签:叶子,04,Tree,节点,---,索引,mysql,ref,主键
From: https://www.cnblogs.com/zhengwei-cq/p/18155766

相关文章

  • el-select @change事件获取整个对象
    <el-form-itemlabel="使用人"prop="useBy"><el-selectref="useByRef"v-model="form.useBy"filterableplaceholder="请输入员工名称"style="width:100%"no-match-text="请输入员工名称&qu......
  • guava-SmoothRateLimiter代码
     //定义为volatile变量privatevolatileObjectmutexDoNotUseDirectly;//已存储许可证数量doublestoredPermits;//最大许可证数量doublemaxPermits;//间隔时间doublestableIntervalMicros;//上一次获取许可证时间戳privatelong......
  • 20.vue-组件传参(父传子,子传父)
    父传子:父组件向子组件传入一个参数,可以通过 props配置项,让组件接收外部传过来的数据1)传递数据这里需要注意,通过age="18"的方式,传递进去的数据是字符类型的,通过动态绑定:age="26"的方式,传递进去的数据是整型类型<!--这里需要注意,:age="26"代表v-bind动态绑定,传入的a......
  • Redis进阶 -
    之前已经总结了Redis的基础使用  springboot3+vue3(八)Redis基础使用--登录优化Redis进阶主要总结一下以下知识点:Redis持久化Redis主从Redis哨兵Redis分片集群 Redis单节点问题,以及解决方案:1、数据丢失问题(Redis是内存存储,服务器重启可能会丢失数据。)-----解决......
  • CA-410 色彩分析仪
    CA-310升级型号,快速、高分辨率,支持HDR、广色域和OLED等新型显示测量的新一代色彩分析仪1、CA-410在0.03cd/m2的暗场测量非常稳定,但CA-310就忽高忽低了。2、CA-410在测量Gamma速度时,比CA-310快1.5倍3、CA-410非常便携4、CA-410带自动调零功能5、由于XYZ滤色片的精度提升,CA......
  • Mysql8 设置允许远程连接 (Windows环境)
    1.Windows防火墙开放端口3306: 2.修改mysqlmy.ini配置文件(C:\ProgramData\MySQL\MySQLServer8.0)添加或修改允许所有IPbind-address=0.0.0.03.Windows打开CMD命令窗口--登录mysqlmysql-uroot-p;--添加权限grantallon*.*to'root'@'localhost';--刷新......
  • Linux给文件隔两个字符插入-
    需求:如下maclist.txt文件,每行都是固定个数字符串,现在需要在每行隔两个字符插入一个- 解决方案:使用sed命令进行插入替换,并将内容重新写入new.txt文件中sed  s/是sed替换命令参数,\(.\)匹配任意一个字符,\1和\2分别引用第一个和第二个括号内匹配的值,-是要插入的字......
  • MySQL - [13] binlog、redolog、undolog、delaylog
    题记部分 binlog    redolog      undolog  3.1、什么是undo log事务是需要保证原子性的,也就是说,事务中的操作要么全部完成,要么什么也不做。但有如下情况,会造成事务执行不完。①事务执行过程中可能遇到各种错误,比如:代码bug出现异常。②......
  • SpringCloud(十一)ES 进阶 -- ES集群
    单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。解决方案:海量数据存储问题:将索引库从逻辑上拆分为N个分片,存储到多个节点。单点故障问题:将分片数据在不同节点备份。(这样有一个点挂掉,还能保证数据是完整的,如图:比如说node1挂掉了,node1的主数据sh......
  • redis ----window本地服务
    注册为本地服务进入Redis安装目录,命令格式如下:--service-install服务安装命令--service-name指定服务名--port指定端口运行如下命令:注意:需要在redis.windows.conf配置文件中修改port为6379(默认不用修改)注册成功,查询服务列表,redis服务注册成功,如下图图:2.2启动本地服务服务注......