MySQL獲取配置信息路徑mysql
命令行參數sql
mysqld_safe --datadir=/data/sql_data
配置文件shell
mysqld --help --verbose | grep -A 1 'Default options' /etc/my.cnf/ /etc/mysql/my.cnf /home/mysql/my.cnf ~/.my.cnf
MySQL配置參數的做用域緩存
全局參數(須要從新登陸才能生效)服務器
set global 參數名=參數值;session
set @@global.參數名:=參數值;併發
會話參數性能
set[session]參數名=參數值;操作系統
set @@session.參數名 := 參數值;
內存配置相關參數命令行
確承認以使用的內存的上限
確認MySQL的每一個鏈接使用的內存(都是爲線程分配的)
確認須要爲操做系統保留多少內存
如何爲緩存池分配內存(Innodb嚴重依賴緩存池)
InnoDB緩存池(InnoDB buffer pool)是提高InnoDB提高性能的關鍵,它既能夠緩存數據,又能夠緩存索引,甚至其餘的管理數據(元數據、行級鎖)等。可使用show variables like 'innodb%pool%'; 來查看相關的參數選項。
Innodb_buffer_pool_size
總內存-(每一個線程所須要的內存*鏈接數)-系統保留內存
在一個獨立的只使用InnoDB引擎的MySQL服務器中,根據經驗,推薦設置innodb-buffer-pool-size爲服務器總可用內存的80%。
innodb_buffer_pool_instance
innodb_buffer_pool_instance默認值是1,表示InnoDB緩存池被劃分爲一個區域,適當的增長該參數值,能夠提高InnoDB的併發性能。
innodb_additional_mem_pool_size
指定InnoDB用於來存儲數據字典和其餘內部數據的緩存大小,默認值是2M.InnoDB的表個數越多,就應該適當的增長該參數的大小。
key_buffer_size
select sum(index_length)
from information_schema.tables where engine='misaim'
key_buffer_size指定索引緩衝區的大小,它決定索引處理的速度,尤爲是索引讀的速度。經過檢查狀態值Key_read_requests和Key_reads,能夠知道key_buffer_size設置是否合理。比例key_reads /key_read_requests應該儘量的低,至少是1:100,1:1000更好(上述狀態值可使用SHOW STATUS LIKE ‘key_read%'得到)。 key_buffer_size只對MyISAM表起做用。即便你不使用MyISAM表,可是內部的臨時磁盤表是MyISAM表,也要使用該值。可使用檢查狀態值created_tmp_disk_tables得知詳情。 對於1G內存的機器,若是不使用MyISAM表,推薦值是16M(8-64M)