MySQL中Innodb表Data free怎么计算
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章给大家分享的是有关MySQL中Innodb表Data free怎么计算的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。大概是空闲extent的大小。ST_FIELD_
千家信息网最后更新 2025年11月10日MySQL中Innodb表Data free怎么计算
这篇文章给大家分享的是有关MySQL中Innodb表Data free怎么计算的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
大概是空闲extent的大小。
ST_FIELD_INFO tables_fields_info[]={... {"DATA_FREE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Data_free", OPEN_FULL_TABLE},...}tables_fields_info[12]就是Data_freeST_SCHEMA_TABLE schema_tables[]={... {"TABLES", tables_fields_info, create_schema_table, get_all_tables, make_old_format, get_schema_tables_record, 1, 2, 0, OPTIMIZE_I_S_TABLE},...}填充方式get_schema_tables_record函数其中有一句table->field[12]->store((longlong) file->stats.delete_length, TRUE);实际就是 file->stats.delete_length
其中 file->stats.delete_length调用进行取值
ha_innobase::info_low其中包含avail_space = fsp_get_available_space_in_free_extents(ib_table->space);stats.delete_length = avail_space * 1024;
uintmax_tfsp_get_available_space_in_free_extents( const fil_space_t* space){ ut_ad(space->n_pending_ops > 0); ulint size_in_header = space->size_in_header;//总的页面大小 if (size_in_header < FSP_EXTENT_SIZE) { //碎片页 直接返回0 return(0); /* TODO: count free frag pages and return a value based on that */ } /* Below we play safe when counting free extents above the free limit: some of them will contain extent descriptor pages, and therefore will not be free extents */ ut_ad(size_in_header >= space->free_limit); ulint n_free_up = (size_in_header - space->free_limit) / FSP_EXTENT_SIZE; //(总的页面大小-已经初始化大小)/EXTENT SIZE page_size_t page_size(space->flags); if (n_free_up > 0) { n_free_up--; n_free_up -= n_free_up / (page_size.physical() / FSP_EXTENT_SIZE); //减去extent管理块? } /* We reserve 1 extent + 0.5 % of the space size to undo logs and 1 extent + 0.5 % to cleaning operations; NOTE: this source code is duplicated in the function above! */ ulint reserve = 2 + ((size_in_header / FSP_EXTENT_SIZE) * 2) / 200; ulint n_free = space->free_len + n_free_up; if (reserve > n_free) { return(0); } return(static_cast(n_free - reserve) * FSP_EXTENT_SIZE * (page_size.physical() / 1024));} 感谢各位的阅读!关于"MySQL中Innodb表Data free怎么计算"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
大小
内容
就是
更多
篇文章
页面
不错
实用
函数
实际
文章
方式
看吧
知识
空闲
参考
帮助
有关
管理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全法二百七十六条
网络安全专业从事
网络安全公益广告分镜头剧本
上海ibm服务器维修
70岁以上网络安全吗
护苗网络安全课落实情况
宝塔怎么连接远程数据库
软件开发信息理解误差
怎样不让监控服务器噪音响
网易版我的世界逃离塔科夫服务器
绝地求生2怎么连接不了服务器
黔江警务技术网络安全管理进面
国家网络安全认证审查
网络安全与管理期末考试
恒业网络技术有限公司
西安培训软件开发机构排名
现场管理软件开发架构
直连数据库通信
服务器存储备份设备管理规定
超星数据库查重
分离数据库使数据库响应更快
风口下的网络安全漏洞
数据库加密基本概念
哪个服务器是提供域名解析服务
国家级网络安全大脑提案
软件开发需求变更要求
提高无线网络安全性
网络安全法第47条规定内容
网络安全宣传周工作综述
软件开发和大数据分析哪个难