您好,登錄后才能下訂單哦!
這篇文章主要介紹“Innodb關鍵特性之什么是異步IO”,在日常操作中,相信很多人在Innodb關鍵特性之什么是異步IO問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Innodb關鍵特性之什么是異步IO”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1、關于AIO與SIO
為了提高磁盤操作性能,當前的數據庫系統都采用異步IO的方式來處理磁盤操作。
1、異步IO:用戶可以在發出一個IO請求后立即再發出另外一個IO請求,當全部IO請求發送完畢后,等待所有IO操作完成,這就是AIO。
2、與AIO對應的是Sync IO,即每進行一次IO操作,需要等待此次操作結束才能繼續接下來的操作。
2、開啟異步IO
首先OS要有異步io,且開啟,然后mysqld要鏈接,要不然OS異步io沒有開啟,數據庫的異步io也起不來。(this variable applies to Linux systems only, and cannot be changed while the server is running.)
1、文件系統層面需要打開這個功能:一般都是默認開啟的。
ldconfig -v|grep libaio libaio.so.1.0.0 -> libaio.so.1.0.0 libaio.so.1 -> libaio.so.1.0.1
2、AIO是數據庫層面的一個特性需要打開:默認是開啟,但是阿里云默認是關閉的,開啟的native aio性能提升,可以提高到75%。
mysql>show variables like 'innodb_use_native_aio'; +-------------------------+-----------------+ | Variable_name | Value | +-------------------------+-----------------+ | innodb_use_native_aio | OFF | +-------------------------+-----------------+
3、異步IO的好處
1、不用等待直接響應上一個用戶的請求;
2、多次的請求在一起排序,請求的數據頁是在一起的,一次讀出來,減少多次讀。(數據庫的讀寫請求隊列放在文件系統中單獨分配的一塊小內存結構里,非文件系統的緩存)
1、同步IO一定會產生wait IO
2、異步IO會降低wait IO,但是也可能會有wait IO
3、盡量采用異步IO(性能高于同步IO)
4、數據庫層面啟用異步IO
5、文件系統層面啟用異步IO,Linux具備異步IO的能力
6、操作系統層面wio的含義理解
到此,關于“Innodb關鍵特性之什么是異步IO”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。