首页 > 数据库 >MySQL索引数据结构

MySQL索引数据结构

时间:2024-05-08 11:45:20浏览次数:21  
标签:存储 叶子 索引 MySQL 数据结构 节点

什么是索引

索引在项目中还是比较常见的,它是帮助MySOL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗。

索引的底层数据结构

MySQL的默认的存储引擎InnoDB采用的B+树的数据结构来存储索引,选择B+树的主要的原因是:

  1. 阶数更多,路径更短
  2. 磁盘读写代价B+树更低,非叶子节点只存储指针,叶子阶段存储数据
  3. B+树便于扫库和区间查询,叶子节点是一个双向链表

B树和B+树的区别是什么呢?

  1. 在B树中,非叶子节点和叶子节点都会存放数据,而B+树的所有的数据都会出现在叶节点,在查询的时候,B+树查找效率更加稳定
  2. 在进行范围查询的时候,B+树效率更高,因为B+树都在叶子节点存储,并且叶子节点是一个双向链表

标签:存储,叶子,索引,MySQL,数据结构,节点
From: https://www.cnblogs.com/worshipone/p/18179356

相关文章

  • mysql基本语法
    1.DDLDataDefinitionLanguage,数据定义语言,用来定义数据库对象(数据库,表,字段)。 1.1数据库操作查询所有数据库showdatabases;查询当前数据库selectdatabase();创建数据库createdatabase[ifnotexists]数据库名[defaultcharset字符集][col......
  • MYSQL 数据库之锁
    本文参考哔哩哔哩黑马TODO补充详细mysql实例操作语句全局锁全局锁就是对整个数据库实例加锁加锁后处于只读状态后续的DML的写语句和DLL不执行表级锁表锁表锁分为两类:表共享锁(readlock)表独占写锁(writelock)-->语法:加锁locktables表名...read/write......
  • Mysql脚本——备份客户自建数据库
    #!/bin/bashDATE=$(date+%F_%H-%M-%S)HOST=127.0.0.1USER=rootPASS=Linux@123PORT=3306BACKUP_DIR=./db_backup#删选客户自建数据库(排除系统库)DB_LIST=$(mysql-u$USER-p$PASS-h$HOST-P$PORT-s-e"showdatabases;"2>/dev/null|egrep-v"Database|......
  • mysql死锁优化
    查看连接showprocesslist--已开启10秒以上的活跃连接SELECTid,user,db,command,state,time,infoFROMinformation_schema.processlistwherecommand<>'sleep'andtime>10orderbytime;--已运行超过10s的执行计划SELECTid,user,db,command,state,timeFROMinfo......
  • Glang&Mysql&Excel
    packagemainimport( "database/sql" "fmt" "log" _"github.com/go-sql-driver/mysql" "github.com/tealeg/xlsx")funcmain(){ //连接MySQL数据库 db,err:=sql.Open("mysql","root:123456......
  • mysql练习 —— 关于一些函数的使用
    学校作业,拿来记录一下。(老师出的习题貌似是从一本书上拿到的)Q1:使用RAND()函数来获得3个随机值。A1: 解析:rand()函数,获得随机值,产生0-1的随机值。(random,随机) Q2:求3和4的平方根。A2: 解析:sqrt()用于求解平方根。 Q......
  • 常用的数据结构
    日常开发中,可能会用到的数据结构类型数组一组相同类型的元素的集合,可以通过下标进行访问和操作。在C#中,有Array、ArrayList、List时间复杂度:查找是O(N)。插入和删除是O(N)。数组通过下标直接访问元素,时间复杂度是O(1)。数据的每次新增或者删除,数据需要重新排列顺序,时间复杂......
  • MySQL如何定位慢查询
    做压力测试的时候有的接口非常的慢,接口的响应时间超过了2秒以上。系统部署了运维的监控系统Skywalking,在展示的报表中可以看到是哪一个接口比较慢,并且可以分析这个接口哪部分比较慢,这里可以看到SQL的具体的执行时间,所以可以定位是哪个SQL语句出了问题。另外MySQL中也提供了慢日......
  • MySQL同步故障:“ Slave_SQL_Running:No“ 两种解决办法
    进入slave服务器,运行: ​mysql>showslave status\G            .......              Relay_Log_File:localhost-relay-bin.000535               Relay_Log_Pos:21795072       Relay_Ma......
  • 数据结构
    前缀和结构特征:连续子数组的元素和技巧:len(前缀和)=len(list)+1前缀和可以作为list的v,也可做为list的index!----哈希表(问的是xxx的数目)presum=[0]+list(accumulate(nums))---得到前缀和数组accumulate函数可以累加nums的值哈希表使用......