Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


18.2.1 MyISAM 启动选项

以下是对mysqld的选项,可以用来更改MyISAM表的行为。对于更多信息,请见第7.1.7节,“服务器命令选项”

表18.3 MyISAM 选项和变量参考

Name Cmd-Line Option File System Var Status Var Var Scope Dynamic
bulk_insert_buffer_size 双方
concurrent_insert 全局
delay_key_write 全局
have_rtree_keys 全局
key_buffer_size 全局
log-isam
myisam-block-size
myisam_data_pointer_size 全局
myisam_max_sort_file_size 全局
myisam_mmap_size 全局
myisam_recover_options 全局
myisam_sort_buffer_size 双方
myisam_stats_method 双方
myisam_use_mmap 全局
tmp_table_size 双方

以下系统变量影响了MyISAM表的行为。更多信息,请见第7.1.8节,“服务器系统变量”

自动恢复在您启动mysqld时激活,如果设置了myisam_recover_options 系统变量。在这种情况下,当服务器打开一个 MyISAM 表时,它检查表是否标记为崩溃或打开计数变量是否不为 0,并且您正在使用外部锁定禁用。如果满足任何这些条件,以下操作将发生:

  • 服务器检查表的错误。

  • 如果服务器发现错误,它将尝试快速表修复(带排序和不重新创建数据文件)。

  • 如果修复由于数据文件中的错误而失败(例如,重复键错误),服务器将再次尝试,这次重新创建数据文件。

  • 如果修复仍然失败,服务器将再次尝试使用旧的修复选项方法(逐行写入没有排序)。这个方法可以修复任何类型的错误,并且对磁盘空间要求很低。

如果恢复不能从之前完成的语句中恢复所有行,并且您未在myisam_recover_options系统变量的值中指定FORCE,自动修复将以错误消息在错误日志中终止:

Error: Couldn't repair table: test.g00pages

如果您指定了FORCE,将写入以下警告:

Warning: Found 344 of 354 rows when repairing ./test/g00pages

如果自动恢复值包含BACKUP,恢复过程将创建以 tbl_name-datetime.BAK 的形式命名的文件。您应该有一个cron脚本自动将这些文件从数据库目录移动到备份媒体。