Answers:
table_cache
是最有用的更改配置指令。MySQL每次访问表时,都会将该表加载到缓存中。如果您有大量的表,则将它们缓存起来会更快。
通过运行以下命令查看服务器变量:
show status;
并查看变量open_tables
。如果这与您的table_cache
值相同,并且opened_tables
一直在增加,那么您需要table_cache
在配置文件中增加该值。通过在高峰时段尝试这些变量,您将找到一个平衡点。您希望对其进行配置,以使其在高峰时间opened_tables
甚至在服务器长时间启动后也很少。
key_buffer_size
也是一个很好的变量。这个变量会影响索引缓冲区的大小,增大该变量会提高MySQL的索引处理速度。你可以看一下用变量show variables;
命令再次,和比较key_read_requests
来key_reads
。理想情况下,您希望这两个变量之间的比率尽可能小,并且可以通过增加的大小来实现key_buffer_size
。如果将此变量设置得较高,则直接在磁盘上进行的读写操作将更少,这是您主要关心的问题。
您还需要更改my.cnf
文件中的值并重新启动MySQL,尽管您也可以在MySQL运行时更改其中的许多值(“ SET GLOBAL VARIABLE = value ”)。
你可能会想看看在增加key_buffer_size
,sort_buffer
,read_buffer
和table_cache
对于初学者,可能innodb_buffer_pool_size
,如果您有任何InnoDB表。这些值中的一些值可以增加很长的时间(甚至两个数量级),特别是在给定硬件的情况下。MySQL的默认值非常保守,似乎针对大约十年前的普通混合用途台式机。哦,请注意,使用超过2GB的RAM将导致32位版本出现问题。
在MySQL手册中查找更多信息和指导。
show status;
查看状态变量,例如Open_tables
和Opened_tables
。table_cache
在最近的MySQL版本中似乎已被删除。