「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?(9)
注意:以下都是在MySQL目錄下的my.ini文件中改寫(技術(shù)文)。
一、InnoDB內(nèi)存優(yōu)化
InnoDB用一塊內(nèi)存區(qū)域做I/O緩存池,該緩存池不僅用來緩存InnoDB的索引塊,而且也用來緩存InnoDB的數(shù)據(jù)塊。
1、innodb_log_buffer_size
決定了InnoDB重做日志緩存的大小,可以避免InnoDB在事務(wù)提交前就執(zhí)行不必要的日志寫入磁盤操作。
2、設(shè)置Innodb_buffer_pool_size
改變量決定了InnoDB存儲(chǔ)引擎表數(shù)據(jù)和索引數(shù)據(jù)的最大緩存區(qū)大小。
二、MyISAM內(nèi)存優(yōu)化
MyISAM存儲(chǔ)引擎使用key_buffer緩存索引模塊,加速索引的讀寫速度。對(duì)于MyISAM表的數(shù)據(jù)塊,mysql沒有特別的緩存機(jī)制,完全依賴于操作系統(tǒng)的IO緩存。
1、read_rnd_buffer_size
對(duì)于需要做排序的MyISAM表查詢,如帶有order by子句的sql,適當(dāng)增加read_rnd_buffer_size的值,可以改善此類的sql性能。但需要注意的是read_rnd_buffer_size獨(dú)占的,如果默認(rèn)設(shè)置值太大,就會(huì)造成內(nèi)存浪費(fèi)。
2、key_buffer_size設(shè)置
key_buffer_size決定MyISAM索引塊緩存分區(qū)的大小。直接影響到MyISAM表的存取效率。對(duì)于一般MyISAM數(shù)據(jù)庫,建議1/4可用內(nèi)存分配給key_buffer_size:
key_buffer_size=2G
3、read_buffer_size
如果需要經(jīng)常順序掃描MyISAM表,可以通過增大read_buffer_size的值來改善性能。但需要注意的是read_buffer_size是每個(gè)seesion獨(dú)占的,如果默認(rèn)值設(shè)置太大,就會(huì)造成內(nèi)存浪費(fèi)。
三、調(diào)整MySQL參數(shù)并發(fā)相關(guān)的參數(shù)
1、調(diào)整max_connections
提高并發(fā)連接
2、調(diào)整thread_cache_size
加快連接數(shù)據(jù)庫的速度,MySQL會(huì)緩存一定數(shù)量的客戶服務(wù)線程以備重用,通過參數(shù)thread_cache_size可控制mysql緩存客戶端線程的數(shù)量。
3、innodb_lock_wait_timeout
控制InnoDB事務(wù)等待行鎖的時(shí)間,對(duì)于快速處理的SQL語句,可以將行鎖等待超時(shí)時(shí)間調(diào)大,以避免發(fā)生大的回滾操作。(技術(shù)文)
轉(zhuǎn)載于:https://www.cnblogs.com/a8457013/p/7818999.html
總結(jié)
以上是生活随笔為你收集整理的「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?(9)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: angular element()
- 下一篇: linux cmake编译源码,linu