MySQL 5 6初始配置調整

2021-09-07 03:21:32 字數 2536 閱讀 5545

what to tune in mysql 5.6 after installation

原文日期: 2023年09月17日

翻譯日期: 2023年06月01日

翻譯人員:

鐵錨隨著大量預設選項的改進, mysql 5.6比曾經版本號須要調優的選項大為降低. 在本文中我將講述須要優化的配置項.

innodb設定

有乙個非常好的模擬演示樣例:  假如某次航班一張票也沒有賣出去 —— 那麼讓稍後航班的一些人乘坐該次航班,有可能是非常好的策略,以防後面遇到惡劣的天氣. 即有機會就將後台操作順便處理了,以降低同稍後可能的實時操作產生競爭.

有乙個非常easy的計算:  假設每乙個磁碟每秒讀寫(iops)能夠達到 200次, 則擁有10個磁碟的 raid10 磁碟陣列iops理論上 =(10/2)* 200 = 1000. 我說它「非常easy」,是由於raid控制器通常能夠提供額外的合併,並有效提高iops能力. 對於ssd磁碟,iops能夠輕鬆達到好幾千.

將這兩個值設定得太大可能會存在某些風險,你肯定不希望後台操作妨礙了前台任務io操作的效能. 過去的經驗表明,將這兩個值設定的太高,innodb持有的內部鎖會導致效能降低(按我了解到的資訊,在mysql5.6中這得到了非常大的改進).

複製(replication)

假如伺服器要支援主從複製,或按時間點恢復,在這樣的情況下,我們須要:

其它配置(misc)

no_auto_create_user,no_auto_value_on_zero,

no_engine_substitution,no_zero_date,

no_zero_in_date,only_full_group_by.

防火牆是更合適的解決方式,通常我將3306port遮蔽,無論是公網的還是內網的port,僅僅有特定的應用程式能夠訪問和連線到mysql. 

我一般會設定max_connect_errors=100000, 這樣我能夠避免不論什麼「雙重配置」,保證它不會礙事.

通常不可避免地這個值會被設定得更大,但讓我有點緊張的是, 16核的機器在io堵塞的情況下也僅僅有大約 2x~10x 的連線執行能力. 

你可能希望,很多開啟的連線都是空暇並休眠的. 但假設他們都處於活躍狀態的話,可能會建立大量新的執行緒(thread-thrash).

假設條件同意,能夠為應用程式配置優化資料庫連線池(connection-pools)來解決問題,而不是開啟並保持大量連線; 

當然那些不使用連線池(non-pooled ), 迅速開啟,執行任務後又盡可能快地關閉連線的應用也是可行的. 

從5.5開始的還有一種解決方式(在mysql社群版和企業版之間有一些差異) 是使用執行緒池外掛程式.

總結(conclusion

)

假設mysql伺服器的配置為:

則配置可能例如以下所看到的:

# innodb settings

innodb_buffer_pool_size=50g

innodb_log_file_size=2g

innodb_flush_method=o_direct

innodb_io_capacity=2000

innodb_io_capacity_max=6000

innodb_lru_scan_depth=2000

# binary log/replication

log-bin

sync_binlog=1

sync_relay_log=1

relay-log-info-repository=table

master-info-repository=table

expire_logs_days=10

binlog_format=row

transaction-isolation=read-committed

innodb_autoinc_lock_mode = 2

# other

timezone=gmt

character-set-server=utf8

collation-server=utf8_general_ci

sql-mode="strict_trans_tables,

error_for_division_by_zero,

no_auto_create_user,

no_auto_value_on_zero,

no_engine_substitution,

no_zero_date,

no_zero_in_date,

only_full_group_by"

skip-name_resolve

max-connect-errors=100000

max-connections=500

# unique to this machine

server-id=123

mysql5 6配置 Mysql5 6安裝與配置

mysql5.6安裝與配置 進入安裝頁 單擊第一項 install mysql products 一般勾上 skip the check for updates 跳過更新檢查。4 mysql模式 和 路徑 設定 一般安裝mysql作為普通伺服器使用 生產環境 所以選擇 server only 路徑自...

mysql5 6亂碼 mysql5 6亂碼

安裝mysql5.6版本遇到乙個問題,字符集亂碼,如下圖 由於是新安裝的本地資料庫,所以一定是配置的事情,查詢資料庫字符集配置,如下 有兩個是latin1的字符集,本人是window7環境,在網路找了很多資料,都顯示為修改 c program files mysql mysql server 5.6...

Mysql 5 6 配置(備忘)

mysqld 新版不支援在my.ini中直接設定字符集為utf8。解決方法是在default character set前面加上loose loose default character set utf8 加loose 後mysql啟動是不再報錯了,但是在插入資料時依然出現了亂碼問題。解決方法是加入...