首页 > 数据库 >Mysql页分裂

Mysql页分裂

时间:2023-01-11 21:11:08浏览次数:44  
标签:直接插入 插入 分裂 Mysql 该页 数据 节点

 

当我们向某个索引对应的B+树插入记录,需要先定位到这条记录应该被插入到哪个叶子节点对应的数据页中,确定之后有两种情况:

①该页恰好空间足够,能直接插入数据

②该页空间不足,不能直接插入数据

 

我们把该页称为页A

对于第一种情况,数据可以直接插入页A而不会产生其他影响; 对于第二种情况,页A空间不足,但数据需要插入页A,那就需要进行页分裂


页分裂过程

创建一个新页B,将页A中的部分数据转移到页B中,这样就页A能空出多余的空间存储新纪录,再将页B添加到叶子节点的链表中;

但这还没完,由于叶子节点链表发生了变化,记录叶子节点情况的上一层,也需要发生一些变化,来记录这个新插入的页B,也就是在内节点添加一条目录项记录,来指向这个新创建的页B;



显而易见,插入数据时发生页分裂会降低性能;

标签:直接插入,插入,分裂,Mysql,该页,数据,节点
From: https://www.cnblogs.com/TBAGC/p/17044918.html

相关文章

  • 【MySQL】Loading class `com.mysql.jdbc.Driver'. This is deprecated.
    使用的mysql时,配置数据库驱动的时候报了一个这样的错:Loadingclass`com.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.......
  • 【mysql】需熟练掌握的SQL语句
    MySQL数据库sql语句对于后台开发人员来说,是必不可少的,不管你是刚入职的,还是工作了一段时间,sql的离不开,同时不管是hibernate还是mybatis,特别是mybatis,sql完全由程序员开发,所......
  • Linux平台安装 mysql
    mysql安装linux相关命令查询是否安装mysqlrpm-qa|grep-imysql安装mysql安装前,我们可以检测系统是否自带安装MySQL:rpm-qa|grepmysql如果你系统有安装,那可以选择进行......
  • 【MySQL】 DATE_FORMAT() 格式化时间
    我们会在项目中遇到这样一种需要,时间存储的时候存的是datetime,也就是年月日,时分秒,但是我们在使用的时候只需要使用年月日的时间,如果我们查询出成千上万条数据,使用代码转化可......
  • Centos对指定IP放行Mysql
    放行指定IP地址firewall-cmd--permanent--add-rich-rule="rulefamily="ipv4"sourceaddress="45.76.8.212"  accept"firewall-cmd--reload 放行指定端口#添......
  • Docker安装mysql
    一、mysql安装1)在/usr/local/mysql下创建两个文件夹(conf、data)  2)在/usr/local/mysql/conf下创建文件my.cnf  my.cnf文件配置[mysqld]#Mysql服务的唯一编......
  • mysql从库无法正常回放主库的sql语句原因总结
    1.从库回放时报1062错误ERROR1062(23000):Duplicateentry'100-100'forkey'c1'违反唯一约束主库能通过,从库不能通过,要注意主从上表结构与索引结构信息是否完全......
  • Mysql主从同步成功的标识
    ......
  • mysql 开放远程登录权限
    开放远程登录权限 #mysql-uroot-p输入密码mysql>usemysql;mysql>GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'password'WITHGRANTOPTION;mysql>f......
  • mysql优化
    最近楼主在做项目的时候,一个查询接口需要的时间居然需要10s钟,数据量是测试环境的数据大概有110W。最后加了2个普通索引解决了:这里记录一下:添加普通索引的语法是: ALTER ......