程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql性能優化之配置參數,mysql性能優化參數

mysql性能優化之配置參數,mysql性能優化參數

編輯:MySQL綜合教程

mysql性能優化之配置參數,mysql性能優化參數


修改以下參數配置項的值,參考如下
1、連接設置
show variables like '%max_connection%';
show status like '%Max_used_connections%';
Max_used_connections/max_connection <=85%

2、存儲在堆棧中的連接數量
show variables like '%back_log%';
back_log 默認為50 建議修改為 128~512

3、數據連接關閉前等待時間
show variables like '%timeout%';
修改interactive_timeout wait_timeout 2項的值,默認為28800,建議修改為7200

4、索引緩沖區的大小
show status like '%read%';
索引未緩存命中率 key_read/key_request_reads ~=0.001~0.01

5、查詢緩沖區的大小(query_cache_size)
show variables like '%cache%';
show status like '%qcache%';
緩存碎片率 Qcache_free_blocks/Qcache_total_blocks <20%
緩存利用率 (query_cache_size-Qcache_free_memory)/query_cache_size<25%
緩存命中率 Qcache_hits/Qcache_inserts>95%

6、順序讀、隨機讀、排序、連接緩沖區的大小,每個線程獨占,建議設置為16MB
show status like '%buffer%';
read_buffer_size
read_rnd_buffer_size
sort_buffer_size
join_buffer_size

7、表緩沖區大小
show status like '%tables%';
table_cache 根據 open_tables opented_tables 大小來調整

8、內存表和臨時表
show status like '%table%';
max_heap_table_size
tmp_table_size
內存表超過臨時表大小,才需要調整內存表的大小

9、磁盤上臨時表大小
show status like '%tmp%';
(Created_tmp_disk_tables/Created_tmp_tables)*100<25%

10、緩存線程的數量
show variables like '%tmp%';
thread_cache_size

11、並發線程的數量
show variables like '%thread%';
innodb_thread_concurrency (cpu+磁盤)數量的2倍

12、其他
數據和索引緩沖區的大小 innodb_buffer_pool_size 物理內容的80%
日志緩沖區的大小 innodb_log_buffer_size 1~8MB
數據字段和其他數據結構的大小 innodb_additional_mem_pool_size 20MB
事物處理機制 innodb_flush_log_at_trx_commit
0 提交事物不寫入日志,每秒日志文件寫入和flush磁盤
1 每秒或每次事物提交時,日志文件寫入 flush磁盤
2 每次事物提交時,日志文件寫入,每秒flush磁盤

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved