mysql 優化my.cnf引數詳解
阿新 • • 發佈:2018-12-08
最近在業務中遇到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