# 16.2.1 MyISAM 启动选项
以下选项可mysqld可以用来改变行为MyISAM
表。有关其他信息,请参阅第 5.1.7 节,“服务器命令选项”.
表 16.3 MyISAM 选项和变量参考
姓名 | 命令行 | 选项文件 | 系统变量 | 状态变量 | 变量范围 | 动态的 |
---|---|---|---|---|---|---|
块_插入_缓冲_尺寸 | 是的 | 是的 | 是的 | 两个都 | 是的 | |
同时_插入 | 是的 | 是的 | 是的 | 全球的 | 是的 | |
延迟_钥匙_写 | 是的 | 是的 | 是的 | 全球的 | 是的 | |
有_rtree_钥匙 | 是的 | 全球的 | 不 | |||
钥匙_缓冲_尺寸 | 是的 | 是的 | 是的 | 全球的 | 是的 | |
日志-isam | 是的 | 是的 | ||||
myisam 块大小 | 是的 | 是的 | ||||
米萨姆_数据_指针_尺寸 | 是的 | 是的 | 是的 | 全球的 | 是的 | |
米萨姆_最大限度_种类_文件_尺寸 | 是的 | 是的 | 是的 | 全球的 | 是的 | |
米萨姆_地图_尺寸 | 是的 | 是的 | 是的 | 全球的 | 不 | |
米萨姆_恢复_选项 | 是的 | 是的 | 是的 | 全球的 | 不 | |
米萨姆_维修_线程 | 是的 | 是的 | 是的 | 两个都 | 是的 | |
米萨姆_种类_缓冲_尺寸 | 是的 | 是的 | 是的 | 两个都 | 是的 | |
米萨姆_统计数据_方法 | 是的 | 是的 | 是的 | 两个都 | 是的 | |
米萨姆_采用_地图 | 是的 | 是的 | 是的 | 全球的 | 是的 | |
时间_桌子_尺寸 | 是的 | 是的 | 是的 | 两个都 | 是的 |
以下系统变量会影响MyISAM
表。有关其他信息,请参阅第 5.1.8 节,“服务器系统变量”.
-
批量插入优化中使用的树缓存的大小。
笔记
这是一个限制每个线程!
-
不要在任何写入之间刷新键缓冲区
MyISAM
桌子。笔记
如果你这样做,你不应该访问
MyISAM
来自另一个程序的表(例如来自另一个 MySQL 服务器或使用迈萨姆奇克) 使用表时。这样做有索引损坏的风险。使用--外部锁定
并不能消除这种风险。 -
MySQL 在重新创建时允许使用的临时文件的最大大小
MyISAM
指数(期间维修台
,更改表
, 要么加载数据
)。如果文件大小大于此值,则使用键缓存创建索引,这会更慢。该值以字节为单位。 -
设置崩溃自动恢复模式
MyISAM
表。 -
设置恢复表时使用的缓冲区大小。
如果您启动自动恢复将被激活mysqld与
myisam_recover_options
系统变量集。在这种情况下,当服务器打开一个MyISAM
表,它检查表是否被标记为崩溃或表的打开计数变量是否不为 0,并且您正在运行禁用外部锁定的服务器。如果其中任何一个条件为真,则会发生以下情况: 服务器检查表是否有错误。
如果服务器发现错误,它会尝试进行快速表修复(使用排序但不重新创建数据文件)。
如果由于数据文件中的错误(例如,重复密钥错误)而导致修复失败,则服务器会再次尝试,这次重新创建数据文件。
如果修复仍然失败,服务器会再次尝试使用旧的修复选项方法(逐行写入而不进行排序)。这种方法应该能够修复任何类型的错误并且对磁盘空间的要求很低。
如果恢复无法从以前完成的语句中恢复所有行并且您没有指定
力量
在价值myisam_recover_options
系统变量,自动修复中止并在错误日志中显示错误消息:
Error: Couldn't repair table: test.g00pages
如果您指定力量
,而是写了这样的警告:
Warning: Found 344 of 354 rows when repairing ./test/g00pages
如果自动恢复值包括备份
, 恢复过程创建文件的形式为*
tbl_name-日期时间*.BAK
.你应该有一个cron自动将这些文件从数据库目录移动到备份媒体的脚本。