關(guān)于MySQL數(shù)據(jù)庫配置優(yōu)化的15條建議
概述
今天主要分享一下關(guān)于mysql數(shù)據(jù)庫在配置上的15條建議,僅供參考。

Mysql 配置優(yōu)化建議
1、使用 innodb_flush_method=O_DIRECT 來避免寫的時(shí)候出現(xiàn)雙緩沖區(qū)。
2、避免使用 O_DIRECT 和 EXT3 文件系統(tǒng) — 這會(huì)把所有寫入的東西序列化。
3、分配足夠 innodb_buffer_pool_size ,來將整個(gè)InnoDB 文件加載到內(nèi)存 — 減少從磁盤上讀。

4、不要讓 innodb_log_file_size 太大,這樣能夠更快,也有更多的磁盤空間 — 經(jīng)常刷新有利降低發(fā)生故障時(shí)的恢復(fù)時(shí)間。
5、不要同時(shí)使用 innodb_thread_concurrency 和 thread_concurrency 變量 — 這兩個(gè)值不能兼容。
6、為 max_connections 指定一個(gè)小的值 — 太多的連接將耗盡你的RAM,導(dǎo)致整個(gè)MySQL服務(wù)器被鎖定。
7、保持 thread_cache 在一個(gè)相對較高的數(shù)值,大約是 16 — 防止打開連接時(shí)候速度下降。
8、使用 skip-name-resolve — 移除 DNS 查找。

9、如果你的查詢重復(fù)率比較高,并且你的數(shù)據(jù)不是經(jīng)常改變,請使用查詢緩存 — 但是,在經(jīng)常改變的數(shù)據(jù)上使用查詢緩存會(huì)對性能有負(fù)面影響。
10、增加 temp_table_size — 防止磁盤寫。
11、增加 max_heap_table_size — 防止磁盤寫。
12、不要將 sort_buffer_size 的值設(shè)置的太高 — 可能導(dǎo)致連接很快耗盡所有內(nèi)存。
13、監(jiān)控 key_read_requests 和 key_reads,以便確定 key_buffer 的值 — key 的讀需求應(yīng)該比 key_reads 的值更高,否則使用 key_buffer 就沒有效率了。

14、設(shè)置 innodb_flush_log_at_trx_commit = 0 可以提高性能,但是保持默認(rèn)值(1)的話,能保證數(shù)據(jù)的完整性,也能保證復(fù)制不會(huì)滯后。
15、有一個(gè)測試環(huán)境,便于測試你的配置,可以經(jīng)常重啟,不會(huì)影響生產(chǎn)環(huán)境。