国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

MySQL5.5.X的優(yōu)化秘密之一:InnoDB存儲引擎

從mysql5.5.x開始,默認的存儲引擎更改為InnoDB Plugin引擎,提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全存儲引擎。InnoDB鎖定在行級,并且也在SELECT語句提供與Oracle

從mysql5.5.x開始,默認的存儲引擎更改為InnoDB Plugin引擎,提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全存儲引擎。InnoDB鎖定在行級,并且也在SELECT語句提供與Oracle風(fēng)格一致的非鎖定讀,這些特性增加了多用戶部署和性能。InnoDB存儲引擎被完全整合到了mysql服務(wù)器中,不過,為了能在主內(nèi)存中緩存數(shù)據(jù)和索引,InnoDB存儲引擎會維持它自己的緩沖池。InnoDB會在一個表空間中存儲它的表和索引。

充分利用CPU多核處理能力

在mysql5.1.X中,innodb_file_io_threads參數(shù)默認是4,在linux系統(tǒng)上是不可更改的,在windows系統(tǒng)上可以調(diào)整。不支持動態(tài)改變,需要寫入中。該參數(shù)的作用是讓InnoDB使用后臺線程處理數(shù)據(jù)頁上讀寫I/O請求的數(shù)量。在mysql5.5.x中,用兩個新參數(shù)代替:innodb_read_io_threads和innodb_write_io_threads。如果CPU是2顆8核,可以將這兩個參數(shù)設(shè)置為8。如果數(shù)據(jù)庫的讀操作較多,可以設(shè)置innodb_read_io_threads10,innodb_write_io_threads6。

提高刷新臟頁數(shù)量和合并插入數(shù)量,改善磁盤I/O處理能力

在5.1.x版本中,由于代碼寫死,最多只會刷新100個臟頁到磁盤、合并20個插入緩沖。即使磁盤有能力處理更多的請求,也只會處理這么多,這樣在更新量較大(大批量insert)的時候,臟頁刷新可能就會跟不上,導(dǎo)致性能下降。innodb_io_capacity參數(shù)可以動態(tài)調(diào)整刷新臟頁的數(shù)量,避免了大批量insert時臟頁刷新跟不上導(dǎo)致性能下降。該參數(shù)默認是200,可以動態(tài)調(diào)整。例如,如果使用的是單盤SAS/SATA,可以將innodb_io_capacity設(shè)置為200;如果使用的是SAS*12RAID10,可以將innodb_io_capacity設(shè)置為2000;如果使用的是SSD,可以將innodb_io_capacity設(shè)置為5000;如果使用的是FUSION-IO,可以將innodb_io_capacity設(shè)置為50000。

讓InnoDB_Buffer_Pool緩沖池中的熱數(shù)據(jù)存活更久

InnoDB_Buffer_Pool緩沖區(qū)有兩個區(qū)域,一個是sublist of new blocks區(qū)域(經(jīng)常被訪問到的區(qū)域,即熱數(shù)據(jù)),一個是sublist of old blocks區(qū)域(不經(jīng)常訪問到的區(qū)域)。當用戶訪問數(shù)據(jù)時,如果緩存區(qū)中有相應(yīng)的數(shù)據(jù),則直接返回,否則會從磁盤讀入緩存區(qū)的sublist of old blocks區(qū)域,然后再移動到sublist of new blocks區(qū)域,并通過LRU最近最少使用算法來剔除舊數(shù)據(jù)。然而,有些SQL語句做統(tǒng)計用全表掃描,會進入sublist of new blocks區(qū)域,把一些真正的熱數(shù)據(jù)“踢走”,導(dǎo)致緩沖區(qū)的數(shù)據(jù)頻繁進出,磁盤I/O頻繁。為了解決這個問題,可以控制進入緩沖區(qū)sublist of old blocks區(qū)域的數(shù)量(innodb_old_blocks_pct參數(shù)),以

標簽: