我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中Innodb表Data free怎么计算

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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_free
ST_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);      
    }    
    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管理块?
    }    
    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<uintmax_t>(n_free - reserve)
           * FSP_EXTENT_SIZE * (page_size.physical() / 1024));
}

感谢各位的阅读!关于“MySQL中Innodb表Data free怎么计算”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中Innodb表Data free怎么计算

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql两个表的差集怎么计算

要计算两个表的差集,可以使用NOT IN或LEFT JOIN来实现。以下是具体的示例:使用NOT IN:SELECT column1, column2FROM table1WHERE column1 NOT IN (SELECT col
mysql两个表的差集怎么计算
2024-04-09

Vue中computed计算属性和data数据怎么获取

这篇文章主要介绍“Vue中computed计算属性和data数据怎么获取”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue中computed计算属性和data数据怎么获取”文章能帮助大家解决问题。
2023-06-29

mysql中enum的长度怎么计算

mysql 中 enum 数据类型的长度取决于存储的字符数和字符集中的字节数。计算公式为:存储的字符数 × 字符集中的字节数。MySQL 中 ENUM 数据类型的长度计算MySQL 中的 ENUM 数据类型用于存储一组预定义的值。它的长度
mysql中enum的长度怎么计算
2024-05-01

MySQL中怎么计算同比和环比

这篇文章主要介绍“MySQL中怎么计算同比和环比”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL中怎么计算同比和环比”文章能帮助大家解决问题。我们先来看看什么是同比,什么是环比:同比:通常是
2023-07-02

MySQL中怎么计算查询结果的总数

要计算查询结果的总数,可以使用COUNT(*)函数来统计查询结果集中的行数。例如,以下是一个示例查询,用于计算一个表中满足特定条件的行数:SELECT COUNT(*) AS total_countFROM table_nameWH
MySQL中怎么计算查询结果的总数
2024-04-09

MySQL中怎么实现基于时间序列的数据计算

在MySQL中实现基于时间序列的数据计算可以通过使用日期和时间函数以及聚合函数来实现。以下是一些常用的时间序列数据计算方法:计算时间序列数据的平均值:SELECT AVG(data_column) FROM table_name WHE
MySQL中怎么实现基于时间序列的数据计算
2024-04-29

怎么在python中利用后缀表达式实现一个计算器功能

本文章向大家介绍怎么在python中利用后缀表达式实现一个计算器功能的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。前缀表达式运算符在数字的前面1 + (2 + 3) * 4 - 5 (中缀)- + 1 * +
2023-06-06

编程热搜

目录