key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 458624 K
read_buffer_size:是MySQL讀入緩沖區大小。對表進行順序掃描的請求將分配一個讀入緩沖區,MySQL會為它分配一段內存緩沖區。read_buffer_size變量控制這一緩沖區的大小。如果對表的順序掃描請求非常頻繁,並且你認為頻繁掃描進行得太慢,可以通過增加該變量值以及內存緩沖區大小提高其性能。
如下是對於16g內存的設置
read_buffer_size = 1M
個人機器是32G的,一般數據庫就用來存儲數據,很少用mysql 所以我就設置為2M或3M
手機在線更新系統MySQL數據庫服務器參數優化mycnf,16G內存8核CPU
業務場景:後台支持手機在線更新系統,db服務器內存16G,8核,dell的pc服務器。
qps: 200個左右
tps: 1個左右 一分鐘50幾個
sort_buffer_size = 32M 大了, 8M即可
read_buffer_size = 32M 大了,8M即可
read_rnd_buffer_size = 16M 大了,8M即可
table_open_cache = 512
小了,建議改成2048
max_allowed_packet = 5M
小了,建議改成16M
tmp_table_size=64M
小了,建議改成2G
innodb_buffer_pool_size = 3000M
小了,改成db服務器總內存的60% 到80%
innodb_additional_mem_pool_size = 20M 小了,改成128M
join_buffer_size 這個參數為什麼沒有看到,必須設置值,join_buffer_size = 8M 必須補上,這個是跟join table 關聯的,很重要。