变量 | 含义 |
key _ buffer _ s i z e | 用于存放索引块的缓冲区大小 |
r e a d _ buffer _ s i z e | 读操作用的缓冲区大小 |
sort _ buffer _ s i z e | 排序用的缓冲区大小 |
w r i t e _ buffer _ s i z e | 写操作用的缓冲区大小 |
要想查看任一个程序使用的这些变量的缺省值,可用--help 选项运行该程序。要想指定其他的值,可在该命令上使用--set-variable variable=value 或-o variable=value。您可以将变量的名字简化成key、r e a d、sort 和w r i t e。例如,可告诉myisamchk 使用16mb 的排序缓冲区和1mb 的读写缓冲区,其调用如下:
% myisamchk -0 sort=16m -0 read=1m write=1m ...
sort _ buffer_size 只能利用--recover 选项来使用(而不是利用- - s a f e _ r e c o ver),在这种情况下,key _ buffer 不能使用。
减少服务器的停机时间
防止服务器访问(您正在处理的)表的另一种方法是在数据目录的外面使用该表文件的拷贝。这样并不能消除交互作用的问题,因为仍然必须防止服务器访问(并可能修改)正在进行拷贝的表。但是,如果您不愿意使服务器脱机的话,该路线可能是使服务器停机时间最小化的一种方法,这对您是有吸引力的。在将该表的文件拷贝到另一个目录时关闭服务器,然后恢复服务器。
myisamchk 的未来打算
myisamchk 的表检查和修复功能打算在mysql3.23 版本系列的某个时候被合并到服务器中。如果这种打算实现,对表的检查和修复将更容易,因为服务器与my i s a m c h k的交互问题将不再会出现。
同样,您能够告诉服务器在启动时检查表,因此在启动服务器前将不需要设置任何特殊的命令在引导期间执行。该程序不对isam 表进行操作,因此在服务器获得表的检修复能力时,应考虑将isam 表转换成myisam 表。请查看新发行版的mysql参考指南,了解在此范围内有什么新进展。可以用alter table 语句转换表的类型:
alter table tbl_name type=myisam
新闻热点
疑难解答