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啟動是不再報錯了,但是在插入資料時依然出現了亂碼問題。解決方法是加入...