PACK

mac2022-06-30  107

MyISAM 表选项说明

drupal水滴 , 2009/06/10 09:58 , mysql , 评论(0) , 阅读(1105) 大 | 中 | 小

MyISAM 表选项说明

//author:majormoves //更改表的auto_increment //删除了表末尾的数据后,想让其数据实现连续性 ALTER TABLE `rentcountry` PACK_KEYS =0 CHECKSUM =0 DELAY_KEY_WRITE =0 AUTO_INCREMENT =30

查 看章节 7 MySQL 表类型。 如果一个表类型被指定,而那个特殊类型是不可用的,MySQL 将选择最接近于你所指定类型的表类型。例如,如果 TYPE=BDB 被指定,而当前版本的 MySQL 不支持 BDB 表,该将会做为 MyISAM 表代替被创建。 其它的表选项是用于优化表行为的。在大多数情况下,你不必指定他们中的任何一个。选项对所有表均适用,如果不适用则另外说明:

引用 选项  含义   AUTO_INCREMENT  你想要为你的表设定的下一个 AUTO_INCREMENT 值。(MyISAM)   AVG_ROW_LENGTH  你的表的平均行长度的近似值。你只需为有变长记录的大表设置它   CHECKSUM  如果你希望 MySQL 对所有的记录行维持一个检验和(这将使表在更新时变得更慢,但是使得更容易地发现损坏的表),设置它为 1。(MyISAM)   COMMENT  对于你的表的一个 60 个字符的注释   MAX_ROWS  你计划在表中存储的最大记录行数目   MIN_ROWS  你计划在表中存储的最小记录行数目   PACK_KEYS  如 果你希望有更小的索引,设置它为 1。这通常使的更新更加得慢,面读取列快 (MyISAM, ISAM)。设置它为 0,将禁用所有键压缩。设置它为 DEFAULT (MySQL 4.0),将告诉存储引擎仅仅压缩长的 CHAR/VARCHAR 列   PASSWORD  以一个密码加密 `.frm' 文件。在 MySQL 标准版中,这个选项不做任何事   DELAY_KEY_WRITE  如果希望延迟键表更新,直到该表被关闭,设置它为 1。(MyISAM).   ROW_FORMAT  定义记录行如何被存储。目前,这个选项只能工作于 MyISAM 表,它支持 DYNAMIC 和 FIXED 行格式。 查看章节 7.1.2 MyISAM 表格式  

当 你使用一个 MyISAM 表时,MySQL 使用 max_rows * avg_row_length 的乘积来最终表将有多大。如果你不指定上面的任何选项,一个表的最大民族教育将是 4G (或 2G ,如果你的操作系统仅支持 2G 的最大文件)。原因是仅仅是为了控制指针范围使索引更小和更快,如果您真的不需要大文件。 如果你不使用 PACK_KEYS,缺省仅仅压缩字符串,不压缩数字。如果你使用 PACK_KEYS=1,数字也将被很好地压缩。 当压缩二进制数字键时,MySQL 将使用 prefix 压缩。这就意味着,如果有许多同样的数字,你才能得到很大的益处。Prefix 压缩意味着每个键都需要一个额外的字节来指示前一个键有多少字节与下一个键相同(注意,行指针被以高元组第一次序(high-byte-first- order)直接地存储在键后,以改善压缩)。这就意味着,如果在一个记录行上有连续两行的相等键,下面所有“相同”的键通常只占用 2 个字节(包括记录行指针)。与通常情况下相比,下面的“相同”键将占用 storage_size_for_key + pointer_size (通常 4) 个字节。另一方面,如果所有的键都是不同的,你将在每个键上损失 1 字节,如果该键不是一个可以有 NULL 值的键。(在这种情况下,压缩后键的长度将存储在用于键是否为 NULL 的位元组中。)

转载于:https://www.cnblogs.com/woxing/archive/2013/04/03/2998527.html

最新回复(0)