mysql 异步_MySQL -- 异步I/O
linux上,innodb使用異步IO子系統(tǒng)(native AIO)來對數(shù)據(jù)文件頁進(jìn)行預(yù)讀和寫請求。行為受到參數(shù)innodb_use_native_aio控制。
默認(rèn)是開啟的,且只是適用于linux平臺,需要libaio庫。在其他的類unix平臺上,innodb使用的是同步I/O。
由于歷史的原因,在windows平臺上innodb只使用異步I/O。
在同步I/O情況下,查詢線程將I/O請求放入隊(duì)列,innodb后臺線程會便利請求隊(duì)列,每次處理一個請求。并行處理的請求個數(shù)受到后臺線程的數(shù)量控制(參數(shù)innodb_read_io_threads)。
native AIO情況下,查詢線程直接將I/O請求分發(fā)給操作系統(tǒng),從而避免的后臺線程數(shù)量對并發(fā)數(shù)的控制。innodb后臺線程只需要等待操作系統(tǒng)對IO請求的處理反饋信息。
native AIO優(yōu)點(diǎn)是可以擴(kuò)展,對于I/O高的系統(tǒng),通過show engine innodb status可以看到很多掛起的讀寫線程。磁盤控制器影響I/O性能。
native AIO的另一個優(yōu)點(diǎn)就是可以進(jìn)行I/O merge操作。
native AIO潛在的不足是,對于高I/O系統(tǒng)缺少對I/O寫請求分發(fā)的控制。有些場景下,太多的I/O寫請求分發(fā)給操作系統(tǒng),可能會導(dǎo)致I/O讀饑荒,這取決于系統(tǒng)可以同時(shí)處理I/O活動的能力。
總結(jié)
以上是生活随笔為你收集整理的mysql 异步_MySQL -- 异步I/O的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牧马人机械鼠标g3_性价比好的有线鼠标都
- 下一篇: Mysql8秒级加字段_Mysql8.0