1. 程式人生 > >mysql 優化my.cnf引數詳解

mysql 優化my.cnf引數詳解

最近在業務中遇到mysql二進位制日誌相關問題,這裡整理一份線上my.cnf引數配置:

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin

[mysqld1]
socket = /tmp/mysql.sock
port = 3306
pid-file = /usr/local/mysql/var1/mysqld.pid
datadir = /usr/local/mysql/var1/
explicit_defaults_for_timestamp = true

##Disable DNS lookups
skip-name-resolve   #禁止MySQL對外部連線進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。如果開啟該選項,則所有遠端主機連線授權都要使用IP地址方式。
skip-external-locking 
log-bin=mysql-bin   #開啟二進位制日誌

##IO 快取優化
#用於索引塊的緩衝區大小,增加它可得到更好處理的索引(預設384M),嚴格說是它決定了資料庫索引處理的速度,尤其是索引讀的速度
key_buffer_size = 128M  

max_allowed_packet = 16M
table_open_cache = 128
#MySql執行排序使用的緩衝大小,預設4M。如果想要增加ORDERBY的速度,首先看是否可以讓MySQL使用索引而不是額外的排序階段。如果不能,可以嘗試增加sort_buffer_size變數的大小
sort_buffer_size = 4M
#MySql讀入緩衝區大小,預設2M。如果對錶的順序掃描請求非常頻繁,並且你認為頻繁掃描進行得太慢,可以通過增加該變數值以及記憶體緩衝區大小提高其效能.
read_buffer_size = 4M
#MySql的隨機讀緩衝區大小,預設8M。當按任意順序讀取行時(例如,按照排序順序),將分配一個隨機讀快取區
read_rnd_buffer_size = 8M

## 最大連線數,MySQL伺服器允許的最大連線數16384,連線數越多消耗記憶體越多
max_connections = 4000

## 日誌過期時間,包括二進位制日誌(過期自動刪除)
expire_logs_days = 3

character-set-server = utf8  #設定MySQL的預設編碼方式
collation-server = utf8_unicode_ci
default-storage-engine = INNODB   #設定MySQL的預設儲存引擎

## Enable Per Table Data for InnoDB to shrink ibdata1(innoDB表優化)
innodb_file_per_table = 1
#預設128M,用於儲存頁面快取資料外,另外正常情況下還有大約8%的開銷,主要用在每個快取頁幀的描述、adaptive hash等資料結構,適當的增加這個引數的大小,可以有效的減少 InnoDB 型別的表的磁碟 I/O 
innodb_buffer_pool_size = 2048M
innodb_log_file_size = 512M
#預設是8MB,InnoDB在寫事務日誌的時候,為了提高效能,也是先將資訊寫入Innofb Log Buffer中,當滿足innodb_flush_log_trx_commit引數所設定的相應條件(或者日誌緩衝區寫滿)之後,才會將日誌寫到檔案 (或者同步到磁碟)中
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2

## mysql master-slave replication
server-id = 2
log-bin=mysql-bin
#二進位制日誌大小
max_binlog_size = 512M
binlog_cache_size = 2M
#最大二進位制日誌的快取區大小的變數
max_binlog_cache_size = 8M
#主從複製從庫開啟
#relay_log = mysql-relay-bin
#此引數控制slave資料庫是否把從master接受到的log並在本slave執行的內容記錄到slave的二進位制日誌中,主從複製從庫開啟
#log_slave_updates = 1

binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema