我一直在努力解决这个问题,但我不能到目前为止。 我有使用MyISAM引擎的41个表的数据库。目前数据库的总体大小为96.7MB。
问题是“MySQL运行时信息”显示非常惊人的统计数据。这些是:
Handler_read_rnd = 1,495K
Handler_read_rnd_next = 51M
Created_tmp_disk_tables = 31K
Opened_tables = 217K
我设置了以下值:
key_buffer_size = 768 MB
query_cache_size = 40 MB
table_cache = 800
tmp_table_size = 64 MB
sort_buffer_size = 20 MB
read_rnd_buffer_size = 6 MB
我的服务器正在运行带有6GB RAM的Linux。我重新启动了数据库服务器,因此MySQL服务器已经运行了2天,10小时34分14秒。
有任何改善这些性能问题的建议吗?
还有一件事要问:table_cache = 800< - 800是什么,KB或MB ?
答案 0 :(得分:2)
您确定您的my.cnf正在使用吗?使用show global variables并验证您的设置是否实际被使用。
就800而言,这是将被缓存的表句柄的数量。
鉴于您的设置和结果,我不得不怀疑您的设置没有兑现。
BTW我在建立和调整大型MySQL系统(复数)多年后的个人建议是使用InnoDB。其中一个优点是无需转动这种神秘而简单的旋钮即可获得合理的开箱即用性能和性能。