如何掌握MySQL数据库中动态表的特征

数据库 MySQL
我们今天主要向大家讲述的是正确掌握MySQL数据库中动态表的特征的好用方案,下面就是文章的具体内容描述,望你会有所收获。

以下的文章主要介绍的是如何正确掌握MySQL数据库中动态表的特征,可以说动态表在MySQL数据库中使用频率还是很大的,所以MySQL数据库中动态表的掌握也是一件很重要的事情,以下就是文章的具体内容。

如果一个MyISAM表包含任何可变长度列(VARCHAR, BLOB或TEXTDynamic),或者如果一个表被用ROW_FORMAT=DYNAMIC选项来创建,动态存储格式被使用。

这个格式更为复杂一点,因为每行有一个表明行有多长的头。当一个记录因为更新的结果被变得更长,该记录也可以在超过一个位置处结束。

你可以使用OPTIMIZE TABLE或myisamchk来对一个表整理碎片。如果在一个表中有你频繁访问或改变的固定长度列,表中也有一些可变长度列,仅为避免碎片而把这些可变长度列移到其它表可能是一个好主意。

MySQL数据库动态格式表的一般特征:

除了长度少于4的列外,所有的字符串列是动态的。

在每个记录前面是一个位图,该位图表明哪一列包含空字符串(对于字符串列)或者0(对于数字列)。注意,这并不包括包含NULL值的列。如果一个字符列在拖曳空间移除后长度为零,或者一个数字列为零值,这都在位图中标注了且列不被保存到磁盘。 非空字符串被存为一个长度字节加字符串的内容。

通常比固定长度表需要更少的磁盘空间。

每个记录仅使用必需大小的空间。尽管如此,如果一个记录变大,它就按需要被分开成多片,造成记录碎片的后果。比如,你用扩展行长度的信息更新一行,该行就变得有碎片。在这种情况下,你可以时不时运行OPTIMIZE TABLE或myisamchk -r来改善性能。可使用myisamchk -ei来获取表的统计数据。

动态格式表在崩溃后要比静态格式表更难重建,因为一个记录可能被分为多个碎片且链接(碎片)可能被丢失。

动态尺寸记录期望的行长度用下列表达式来计算:

 

  1. ·3  
  2. ·+ (number of columns + 7) / 8  
  3. ·+ (number of char columns)  
  4. ·+ (packed size of numeric columns)  
  5. ·+ (length of strings)  
  6. ·+ (number of NULL columns + 7) / 8  

 

对每个链接需要额外的6字节。在一个更新导致一个记录的扩大之时,一个动态记录被链接了。每个新链接至少是20字节,所以下一个扩大可能在同样的链接里进行。如果不是,则另一个链接将被建立。你可以使用myisamchk -ed来找出链接的数目。所有的链接可以用myisamchk -r来移除。

以上的相关内容就是对怎样掌握MySQL数据库中动态表特征的介绍,望你能有所收获。

【编辑推荐】

  1. MySQL heap使用大汇总
  2. 如何用PHP来实现MySQL备份?
  3. MySQL转义字符的实际应用
  4. 对MySQL数据库中的命令备忘描述
  5. MySQL 备份的实际应用与功能介绍
责任编辑:佚名 来源: 博客园
相关推荐

2023-09-14 23:05:57

​ ​MySQL数据库

2010-06-07 13:53:04

MySQL数据库表

2011-07-19 11:12:36

PHPMySQL数据库

2011-05-18 13:16:21

MySQL数据库锁定

2009-02-02 13:16:23

修复数据表MySQL

2019-10-21 08:08:34

MySQL数据库主键

2010-10-13 11:54:00

MySQL数据库表

2010-06-13 10:59:38

MySQL数据库

2024-06-26 08:00:00

2009-02-02 16:50:34

数据库表的锁定MySQL

2011-04-11 13:09:56

数据库

2009-02-02 13:43:19

故障检测数据库

2011-04-12 14:48:38

MySQL数据库

2024-02-02 10:51:53

2010-05-24 13:14:19

创建MySQL

2018-09-11 17:13:23

MySQ数据库重复记录

2022-06-06 08:21:13

MySQL数据库命令

2023-09-13 14:52:11

MySQL数据库

2018-04-10 14:36:18

数据库MySQL优化技巧

2010-09-06 10:00:00

DB2数据库
点赞
收藏

51CTO技术栈公众号