日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql-5.7中的innodb_buffer_pool_prefetching(read-ahead)详解

發布時間:2023/12/19 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql-5.7中的innodb_buffer_pool_prefetching(read-ahead)详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、innodb的read-ahead是什么:

  所謂的read-ahead就是innodb根據你現在訪問的數據,推測出你接下來可能要訪問的數據,并把它們(可能要訪問的數據)讀入

  內存。

?

二、read-ahead是怎么做到的:

  1、總的來說read-ahead利用的是程序的局部性原理;在innodb的數據文件中是用頁面來管理的,而每64個頁面組成一個Extend

  如果一個Extend的大多數據頁面都被訪問了,那么innodb就認為Extend中的其它頁面被訪問的概率也非常大,于是就可能所

  Extend中的其它頁面與一并調入內存了。

  2、由于這樣做可以把多次IO請求合并成一次,并且可能把多次IO的隨機讀變成線性讀,這樣就能更高效的利用磁盤的性能。

?

三、read-ahead可能會帶來的問題:

  記得之前聽別人說過“飯是個好東西,但是吃多了也容易死人”,read-ahead是個好東西,關鍵在于度,比如說明明只用到

  了Extend中的一個頁面,但是把整個Extend的64個頁面調入內存,這樣就會有問題了。

?

四、怎么把握這個度:

  1、我們可以設定當一個Extend中的多少個頁面被訪問了的時候就把Extend的其它頁面也調入內存,設定這個閾值的參數就是

  innodb_read_ahead_threshold

  2、如果把innodb_read_ahead_threshold設置成58,意思就是說當一個Extend中的58個頁面都被訪問了之后,就把余下的6

  個頁面也調入內存。

  3、由上面的介紹可知,read-ahead可能帶來性能提升,也可能帶來性能問題;mysql還提供了一個一刀切的辦法,那就是關閉

  read-ahead這個功能;可以把innodb_read_ahead_threshold設置成0

?

----

交流學習

?

?

?

?

-----

總結

以上是生活随笔為你收集整理的mysql-5.7中的innodb_buffer_pool_prefetching(read-ahead)详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。