估算mysql数据增长_估算数据库的初始大小以及增长幅度

本文详细介绍了如何估算MySQL数据表的大小,包括固定长度和可变长度列的存储需求,以及如何考虑空位图、可变长度列填充率、索引和填充因子等因素。此外,还讨论了带有聚集索引和无聚集索引表的大小估计方法。通过这些步骤,可以帮助数据库管理员更好地预测和管理数据库的增长。
摘要由CSDN通过智能技术生成

http://jinnianshilongnian.iteye.com/blog/2031823

估计表的大小(一)

估计表的大小

下列步骤可用于估计存储表中的数据所需的空间量。

指定表中的行数:

表中的行数 = Num_Rows

如果在表的定义中有固定长度和可变长度列,请计算数据行中这两组列的每一组所占用的空间。列的大小取决于数据类型和长度说明。有关更多信息,请参见数据类型。

列数 = Num_Cols

所有固定长度列中的字节总和 = Fixed_Data_Size

可变长度列数 = Num_Variable_Cols

所有可变长度列的最大值 = Max_Var_Size

如果表中有固定长度列,行的一部分(称为空位图)将保留以管理列的可为空性。计算大小:

空位图 (Null_Bitmap) = 2 + (( Num_Cols + 7) / 8 )

仅使用上述表达式中的整数部分,而去掉其余部分。

如果表中有可变长度列,请确定在行中存储这些列需使用的空间:

可变长度列的总大小 (Variable_Data_Size) = 2 + (Num_Variable_Cols x 2) + Max_Var_Size

如果没有可变长度列,请将 Variable_Data_Size 设置为 0。

此公式假设所有可变长度列均百分之百充满。如果预计可变长度列占用的存储空间比例较低,则可以按照该比例调整结果以对整个表大小得出一个更准确的估计。

计算行大小:

行总大小 (Row_Size) = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap +4

最后一个值 4 表示数据行首结构。

下一步,计算每页的行数(每页有 8096 可用字节):

每页的行数 (Rows_Per_Page) = ( 8096 ) / (Row_Size + 2)

因为行不跨页,所以每页的行数应向下舌入到最接近的整数。

如果要在表上创建聚集索引,那么要根据指定的填充因子计算每页保留的可用行数。有关更多信息,请参见填充因子。如果不创建聚集索引,请将 Fill_Factor 指定为 100。

每页的可用行数 (Free_Rows_Per_Page) = 8096 x ((100 - Fill_Factor) / 100) / (Row_Size + 2)

计算中使用的填充因子为整数值,而不是百分数。

因为行不跨页,所以每页的行数应向下舍入到最接近的整数。填充因子增大时,每页将存储更多的数据,因此页数将减少。

计算存储所有行所需的页数:

页数 (Num_Pages) = Num_Rows / (Rows_Per_Page - Free_Rows_Per_Page)

估计的页数应向上舍入到最接近的整数。

最后,计算存储表中的数据所需的空间量(每页总字节为8192):

表大小(字节)= 8192 x Num_Pages

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zjcxc/archive/2006/06/25/833776.aspx

估计表的大小(二)--估计带有聚集索引的表的大小

估计带有聚集索引的表的大小

下列步骤可用于估计存储带有聚集索引的表上的数据和任何附加的非聚集索引所需的空间。

计算存储数据所用的空间。

计算存储聚集索引所用的空间。

计算存储每个附加非聚集索引所用的空间。

汇总计算所得的值。

对于每个计算,都要指定将在表中出现的行数。表中的行数将对表的大小有直接影响:

表中的行数 = Num_Rows

计算存储数据所用的空间

有关如何计算存储数据所用空间的更多信息,请参见估计表的大小。

记下计算所得的值:

存储数据所用的空间 = Data_Space_Used

计算存储聚集索引所用的空间

下列步骤可用于估计存储聚集索引所需的空间。

聚集索引定义可以包括固定长度和可变长度列。为了估计聚集索引的大小,需要指定索引行中这两组列的每一组所占用的空间。

索引键中的列数 = Num_CKey_Cols

所有固定长度键列中的字节总和 = Fixed_CKey_Size

索引键中的可变长度列数 = Num_Variable_CKey_Cols

所有可变长度键列的最大值 = Max_Var_CKey_Size

如果聚集索引中有固定长度列,那么索引行的一部分将为空位图保留。计算大小:

索引空位图 (CIndex_Null_Bitmap) = 2 + (( Num_CKey_Cols + 7) / 8 )

仅使用上述表达式中的整数部分,而去掉其余部分。

如果索引中有可变长度列,请确定存储索引行中的这些列需使用的空间:

可变长度列的总大小 (Variable_CKey_Size) = 2 + (Num_Varia

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值