开发学院数据库MySQL 带你快速了解MyISAM启动选项 阅读

带你快速了解MyISAM启动选项

 2007-10-29 11:00:27 来源:WEB开发网   
核心提示:下列对MySQLd 的选项可用来改变MyISAM表的行为: ·--myisam-recover=mode设置为崩溃MyISAM表自动恢复的模式, ·--delay-key-write=ALL对任何MyISAM表的写操作之间不要刷新键缓冲区,带你快速了解MyISAM启动选项, 注释:如果你要这

下列对MySQLd 的选项可用来改变MyISAM表的行为:

·--myisam-recover=mode

设置为崩溃MyISAM表自动恢复的模式。

·--delay-key-write=ALL

对任何MyISAM表的写操作之间不要刷新键缓冲区。

注释:如果你要这么做。当表在使用中之时,你应该不使用来自另一个程序的MyISAM表(比如从另一个MySQL服务器或用myisamchk)。这么做会导致索引被破坏。

对使用--delay-key-write的表,使用--external-locking没有帮助。

列系统变量影响MyISAM表的行为:

·bulk_insert_buffer_size

用在块插入优化中的树缓冲区的大小。注释:这是一个per thread的限制。

·(OBSOLETE) myisam_max_extra_sort_file_size

这个参数已经不在MySQL中使用。

·myisam_max_sort_file_size

如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引。注释:这个参数以字节的形式给出。

·myisam_sort_buffer_size

设置恢复表之时使用的缓冲区的尺寸。

如果用--myisam-recover选项启动mysqld,自动恢复被激活。在这种情况下,当服务器打开一个MyISAM表之时,服务器会检查是否表被标注为崩溃,或者表的打开计数变量是否不为0且你正用--skip-external-locking运行服务器。如果这些条件的任何一个为真,下列情况发生:

·表被查错。

·如果服务器发现一个错误,它试着做快速表修复(排序且不重新创建数据文件)。

·如果修复因为数据文件中的一个错误而失败(例如,一个重复键错误),服务器会再次尝试修复,这一次重建数据文件。

· 如果修复仍然失败,服务器用旧修复选项方法再重试一次修复(一行接一行地写,不排序)。这个方法应该能修复任何类型的错误,并且需要很低的磁盘空间。

如果恢复不能够从先前完成的语句里恢复所有行,而且你不能在--myisam-recover选项值指定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脚本,它自动把这些文件从数据库目录移到备份媒质上。

Tags:快速 了解 MyISAM

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接