Mysql默認安裝後,如果是小型項目基本不用更改什麼配置,如果是中大型項目,那麼需要一些基本的優化,以達到性能最大化。
以下都是針對my.ini配置文件的修改,是我工作中經常碰到的問題,及解決辦法:
一、innodb_flush_log_at_trx_commit 參數
innodb_flush_log_at_trx_commit=2
該參數的有效值有 0、1、2:
0:事務提交時,不將重做日誌緩衝寫入磁盤,而是依靠 InnoDB 的主線程每秒執行一次刷新到磁盤。因此如果 MySQL 發生宕機,那麼就有可能丟失一部分事務。
1:事務提交時,會將重做日誌緩衝寫入磁盤,並且立即刷新(fsync())。注意,因爲操作系統的“延遲寫”特性,此時的刷入只是寫到了操作系統的緩衝區中,因此執行同步操作才能保證一定持久化到了硬盤中。
2:事務提交時,會將重做日誌緩衝寫入磁盤,但是不會立即進行刷新操作,因此只是寫到了操作系統的緩衝區。此時若操作系統發生宕機而沒有即使的同步,也可能會丟失一部分數據。
二、內存參數 innodb_buffer_pool_size
innodb_buffer_pool_size = 46G
根據官方建議,一般修改爲服務器物理內存的80%,具體參數根據服務器的性能來設置。
--臨時手動加載內存,如果正在生產,沒法停止的情況下,可以先臨時加載內存,執行SQL:
SET GLOBAL innodb_buffer_pool_size=48318382080;
三、連接數修改
max_connections參數是設置最大連接數的,如果連接的設備比較多,可以在這裏修改最大數
max_connections = 1000
項目裏一般會用連接池來配置的,具體情況具體配置。
四、修改數據文件位置
不知大家有沒有發現,在第一次安裝5.7時,無法選擇安裝文件位置,有時需要重新安裝時纔會顯示出來,這樣一般比較麻煩,那比較快捷的方式就是修改配置裏的參數:
# Path to the database root
datadir=D:\Data
比如把數據文件放在其它盤,只要這樣修改下就可以了。