innodb 乐观插入因空间不够导致失败,进入悲观插入阶段,这个空间的限制大小

btr_cur_optimistic_insert{

...

/*检查分裂页时是否有足够的空间预留给未来记录的update*/

if (leaf && !zip_size && dict_index_is_clust(index)

&& page_get_n_recs(page) >= 2

&& dict_index_get_space_reserve()+ rec_size > max_size

&&(btr_page_get_split_rec_to_right(cursor, &dummy)

||btr_page_get_split_rec_to_left(cursor, &dummy))) {

gotofail;

}

...

}

dict_index_get_space_reserve()+ rec_size > max_size

dict_index_get_space_reserve()=1024,即当1024+记录大小rec_size大于当前page空闲空间max_size时,乐观插入失败,进入悲观插入阶段,发生B+分裂

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 06:14:21

innodb 乐观插入因空间不够导致失败,进入悲观插入阶段,这个空间的限制大小的相关文章

oracle所在磁盘空间不足导致了数据库异常

oracle所在磁盘空间不足导致了数据库异常.需要减小数据文件的大小来解决. 1.检查数据文件的名称和编号 select file#,name from v$datafile; 2.看哪个数据文件所占的空间最大,根据该数据文件的编号查看该数据文件的最大数据块数 select max(block_id) from dba_extents where file_id=8; 查询结果 3.计算该表空间的实际占用空间.(不是物理文件的大小) 查看每个数据块的大小 show parameter db_bl

Hive 执行查询语句报错,由于内存空间不足导致

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/root/5a62374a-9509-4d20-befb-de0e00c0e7ad/hive_2019-06-14_11-12-24_067_6655769013562582754-1/-mr-10016. Name node is in

swap空间不够导致安装失败解决方法

在安装Oracle的时候,可能因为我们分配的swap空间不够导致安装失败.处理步骤如下: SWAP空间为2G [[email protected] oracle]# free            total      used      free    shared    buffers    cachedMem:      2039004    1207260    831744          0      22668    833660-/+ buffers/cache:    350

硬盘空间满导致mysql ibd文件被删后提示Tablespace is missing for table 'db_rsk/XXX"

昨天一早,开发人员反馈说一个测试环境报Tablespace is missing for table 'db_rsk/XXX",周末刚升级过,特地让开发回去查了下,说脚本中肯定没有drop table的操作.datadir下检查了下,发现frm文件在的ibd文件没有了,bing了下,没发现类似异常.于是先回到mysql.err往回搜索,半天后发现上周五下午mysql出现了一次异常宕机,说是磁盘空间不足了,看日志该文件被损坏了,如下: 2016-11-12 11:31:00 28443 [ERRO

橙色预警:索引空间泄露导致业务中断

写在案例分享前 承蒙大家的喜爱,我们会一直做下去! 也希望喜欢技术人生系列的朋友们,顺手帮转发一下,您的转发是我们持续分享的动力. 记得端午节和兄弟们喝酒时,有朋友说,"要不,你们成立一个用户组吧,这样更多的朋友可以以一个公益的形式加入到分享的队伍中,也可以从线上分享发展到线下分享,并且可以到各个城市中去做实战分享,让大家可以面对面的交流"; 说的有道理,于是乎,有了CESOUG,即China Experience Sharing Oracle User Group,中文名为中国经验分

WCF传输过大的数据导致失败的解决办法

WCF传输过大的数据导致失败的解决办法 WCF服务默认是不配置数据传输的限制大小的,那么默认的大小好像是65535B,这才65KB左右,如果希望传输更大一些的数据呢,就需要手动指定一下缓冲区的大小了. 主要是为binding设置几个最大值属性就可以了,包括服务端和客户端均进行设置,不过配置都是一样的. <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpB

UNDO表空间损坏导致数据库无法OPEN

在数据库undo表空间文件损坏,或者undo表空间文件缺失的情况下,无法打开数据库. 这两种情况都可以视为一种情况处理,解决方法一样. 场景:在23:10的时候新建一个undo表空间undotbs02,并切换至该undo表空间. 此时再闪回数据库至23:10. 由于闪回数据库时使用的是undotbs02,而23:10时使用的是undotbs01, 会造成undo表空间缺失,无法打开数据库.(注:闪回数据库之后需要resetlogs) 从上面的错误就可以看出来,此时undotbs02不存在,无法打

sqlserver 出现 因为文件组 &#39;PRIMARY&#39; 已满 的解决办法 有可能是磁盘剩余空间不足 导致的

一般虚拟主机提供商是通过限制数据库文件的大小来实现提供定制的数据库空间的.当你把从虚拟数据库空间备份下来的文件恢复到自己的服务器上时,这个限制还是存在的.找到数据库文件 给增加个数据文件就好了 解决办法: 1.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间. 2.检查你的磁盘分区格式:如果是FAT16,则数据文件最大只能是2G,如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制. 3.检查一下你有没有限制数据库文件的大小: 企业管理器--右键你的

删除合并快照时因磁盘空间不够导致快照管理器看不到快照无法完成的解决方法

VMWare Workstation合并快照时因磁盘空间不够导致快照管理器看不到快照无法完成的解决方法 ?Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk实战培训视频课程:https://edu.51cto.com/lecturer/733218.html 为什么要创建及删除合并快照? 搭建试验测试环境时,为了减少搭建时产生的未知错误导致已经完成的部分前功尽弃