最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL之Innodb_buffer_pool_size設置方式

 更新時間:2022年08月24日 14:51:40   作者:小王格子  
這篇文章主要介紹了MySQL之Innodb_buffer_pool_size設置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Innodb_buffer_pool_size設置方式

緩沖池是用于存儲InnoDB表,索引和其他輔助緩沖區(qū)的緩存數(shù)據(jù)的內存區(qū)域。緩沖池的大小對于系統(tǒng)性能很重要。更大的緩沖池可以減少磁盤I/O來多次訪問同一表數(shù)據(jù)。在專用數(shù)據(jù)庫服務器上,可以將緩沖池大小設置為計算機物理內存大小的80%

緩沖池相關參數(shù)說明

1)系統(tǒng)變量參數(shù)

  • Innodb_page_size
  • InnoDB頁面大?。J為16KB)。頁面中包含許多值,頁面大小使它們可以輕松轉換為字節(jié)。
  • Innodb_buffer_pool_chunk_size
  • innodb_buffer_pool_chunk_size 定義InnoDB緩沖池大小調整操作的塊大小。默認128M。最大值可設置innodb_buffer_pool_size / innodb_buffer_pool_instances
  • innodb_buffer_pool_instances
  • InnoDB 緩沖池劃分為的區(qū)域數(shù)。
  • Innodb_buffer_pool_pages_data
  • 數(shù)頁在 InnoDB 緩沖池中包含的數(shù)據(jù)。該數(shù)字包括 臟頁和干凈頁。使用壓縮表時,報告的 Innodb_buffer_pool_pages_data 值可能大于 Innodb_buffer_pool_pages_total (錯誤#59550)。
  • Innodb_buffer_pool_pages_total
  • InnoDB 緩沖池 的總大?。ㄒ皂摓閱挝唬?。使用壓縮表時,報告的 Innodb_buffer_pool_pages_data 值可能大于 Innodb_buffer_pool_pages_total (錯誤#59550)

2)運行狀態(tài)變量

  • Innodb_buffer_pool_pages_flushed
  • 從緩沖池刷新頁面的請求數(shù) 。
  • Innodb_buffer_pool_read_requests
  • 表示從內存中讀取邏輯的請求數(shù)。
  • Innodb_buffer_pool_reads
  • InnoDB 不能從緩沖池滿足的邏輯讀取的數(shù)量,必須直接從磁盤讀取。
  • Innodb_buffer_pool_wait_free
  • 通常,對InnoDB緩沖池的寫入是在后臺進行的。當InnoDB需要讀取或創(chuàng)建一個頁面而沒有可用的干凈頁面時,InnoDB會首先刷新一些臟頁面并等待該操作完成。此計數(shù)器統(tǒng)計這些等待的實例。如果innodb_ buffer_pool_size設置正確,這個值應該很小。

合理的設置緩存池相關參數(shù)

1、innodb_buffer_pool_size 默認設置系統(tǒng)內存百分之80%,后按如下規(guī)則配合實際情況調整

mysql> show global status like 'Innodb_buffer_pool_pages_data';
+-------------------------------+---------+
| Variable_name                 | Value   |
+-------------------------------+---------+
| Innodb_buffer_pool_pages_data | 1894874 |
+-------------------------------+---------+
1 row in set (0.00 sec)

mysql>  show global status like 'Innodb_buffer_pool_pages_total';
+--------------------------------+---------+
| Variable_name                  | Value   |
+--------------------------------+---------+
| Innodb_buffer_pool_pages_total | 1965960 |
+--------------------------------+---------+
1 row in set (0.00 sec)

# 計算是否應該添加內存
使用率 = Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100%
當結果 > 95% 則增加 innodb_buffer_pool_size
當結果 < 95% 則減少 innodb_buffer_pool_size, 可適當較少,當然獨享業(yè)務機器多了也沒啥問題

2、innodb_buffer_pool_instances 默認設置為8,最小1,最大64

對于緩沖池在數(shù)千兆字節(jié)范圍內的系統(tǒng),通過減少爭用不同線程讀寫緩存頁面的爭用,將緩沖池劃分為多個單獨的實例可以提高并發(fā)性。此功能通常用于緩沖池大小在數(shù)GB范圍內的系統(tǒng)。使用innodb_buffer_pool_instances 配置選項配置了多個緩沖池實例 ,您也可以調整該innodb_buffer_pool_size值。

當InnoDB緩沖池很大時,可以通過從內存中檢索來滿足許多數(shù)據(jù)請求。您可能會遇到多個線程試圖立即訪問緩沖池的瓶頸。您可以啟用多個緩沖池以最小化此爭用。使用散列函數(shù),將存儲在緩沖池中或從緩沖池中讀取的每個頁面隨機分配給其中一個緩沖池。每個緩沖池管理自己的空閑列表,刷新列表,LRU和連接到緩沖池的所有其他數(shù)據(jù)結構,并受其自己的緩沖池互斥量保護。

要啟用多個緩沖池實例,請將innodb_buffer_pool_instances配置選項設置為 大于1(默認)的值,最大為64(最大)。僅當您將innodb_buffer_pool_size大小設置為1GB或更大時,此選項才生效 。您指定的總大小將分配給所有緩沖池。為了獲得最佳效率,指定的組合 innodb_buffer_pool_instances 和innodb_buffer_pool_size,使得每個緩沖池實例是至少為1GB。

總結:

# cat /etc/my.cnf
[mysqld]
......
innodb_buffer_pool_size = 系統(tǒng)內存%80
innodb_buffer_pool_instances = 大于8的情況下,每個緩沖池實例至少1GB
......

Reference:

設置innodb_buffer_pool_size參數(shù)

用于緩存索引和數(shù)據(jù)的內存大小,這個當然是越多越好, 數(shù)據(jù)讀寫在內存中非??欤?減少了對磁盤的讀寫。

當數(shù)據(jù)提交或滿足檢查點條件后才一次性將內存數(shù)據(jù)刷新到磁盤中。

然而內存還有操作系統(tǒng)或數(shù)據(jù)庫其他進程使用, 根據(jù)經(jīng)驗,推薦設置innodb-buffer-pool-size為服務器總可用內存的75%。 若設置不當, 內存使用可能浪費或者使用過多。

對于繁忙的服務器, buffer pool 將劃分為多個實例以提高系統(tǒng)并發(fā)性, 減少線程間讀寫緩存的爭用。buffer pool 的大小首先受 innodb_buffer_pool_instances 影響, 當然影響較小。

1.Innodb_buffer_pool_pages_data: Innodb buffer pool緩存池中包含數(shù)據(jù)的頁的數(shù)目,包括臟頁。單位是page。

show global status like 'Innodb_buffer_pool_pages_data';

2.Innodb_buffer_pool_pages_total: innodb buffer pool的頁總數(shù)目。單位是page。

show global status like 'Innodb_buffer_pool_pages_total';

3.show global status like 'Innodb_page_size'; 查看@@innodb_buffer_pool_size大小,單位字節(jié)

SELECT @@innodb_buffer_pool_size/1024/1024/1024; #字節(jié)轉為G

4.在線調整InnoDB緩沖池大小,如果不設置,默認為128M

set global innodb_buffer_pool_size = 4227858432; ##單位字節(jié)

計算Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100%

  • 當結果 > 95% 則增加 innodb_buffer_pool_size, 建議使用物理內存的 75%
  • 當結果 < 95% 則減少 innodb_buffer_pool_size, 建議設置大小為: Innodb_buffer_pool_pages_data * Innodb_page_size * 1.05 / (1024*1024*1024)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MySQL 發(fā)生同步延遲時Seconds_Behind_Master還為0的原因

    MySQL 發(fā)生同步延遲時Seconds_Behind_Master還為0的原因

    騰訊云數(shù)據(jù)庫 MySQL 的只讀實例出現(xiàn)了同步延遲,但是監(jiān)控的延遲時間顯示為 0,而且延遲的 binlog 距離非 0,且數(shù)值越來越大。臨時解決之后,仔細想了一想,Seconds_Behind_Master 雖然計算方式有點坑,但是出現(xiàn)這么“巨大”的誤差還是挺奇怪的,本文就來分析下這個問題
    2021-06-06
  • Mac下mysql 5.7.17 安裝配置方法圖文教程

    Mac下mysql 5.7.17 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 5.7.17 源碼編譯安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL中的SQL標準語句詳解

    MySQL中的SQL標準語句詳解

    SQL(Structured?Query?Language)是“結構化查詢語言”,它是對關系型數(shù)據(jù)庫的操作語言。雖然SQL可以用在所有關系型數(shù)據(jù)庫中,但很多數(shù)據(jù)庫還都有標準之后的一些語法,我們可以稱之為方言
    2022-09-09
  • 初探SQL語句復合主鍵與聯(lián)合主鍵

    初探SQL語句復合主鍵與聯(lián)合主鍵

    這篇文章主要介紹了初探SQL語句復合主鍵與聯(lián)合主鍵的相關內容,具有一定參考價值,這里給大家分享下,需要的朋友可以參考。
    2017-10-10
  • MySQL啟動失敗報錯:mysqld.service failed to run ‘start-pre‘ task的問題分析與解決方案

    MySQL啟動失敗報錯:mysqld.service failed to run 

    在日常運維中,MySQL 作為廣泛應用的關系型數(shù)據(jù)庫,其穩(wěn)定性和可用性至關重要,然而,有時系統(tǒng)升級或配置變更后,MySQL 服務可能會出現(xiàn)無法啟動的問題,本文針對某次實際案例進行深入分析和處理,需要的朋友可以參考下
    2024-12-12
  • Linux CentOS MySQL數(shù)據(jù)庫安裝配置教程

    Linux CentOS MySQL數(shù)據(jù)庫安裝配置教程

    這篇文章主要為大家詳細介紹了Linux CentOS MySQL數(shù)據(jù)庫的安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 記一次MySQL Slave庫恢復實戰(zhàn)記錄

    記一次MySQL Slave庫恢復實戰(zhàn)記錄

    這篇文章主要介紹了記一次MySQL Slave庫恢復實戰(zhàn)記錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • MySQL與Mongo簡單的查詢實例代碼

    MySQL與Mongo簡單的查詢實例代碼

    本文通過一個實例給大家用MySQL和mongodb分別寫一個查詢,本文圖片并茂給大家介紹的非常詳細,感興趣的朋友參考下吧
    2016-10-10
  • 詳解遠程連接Mysql數(shù)據(jù)庫的問題(ERROR 2003 (HY000))

    詳解遠程連接Mysql數(shù)據(jù)庫的問題(ERROR 2003 (HY000))

    本篇文章是對遠程連接Mysql數(shù)據(jù)庫的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL時區(qū)差8小時的多種問題解決方法

    MySQL時區(qū)差8小時的多種問題解決方法

    mybatis將本地的數(shù)據(jù)傳入到mysql數(shù)據(jù)庫服務器的時候,服務器會對數(shù)據(jù)進行檢測,會把date類型的數(shù)據(jù)自動轉換為mysql服務器所對應的時區(qū),即0時區(qū),所以會相差8小時,本文給大家介紹了MySQL時區(qū)差8小時的問題解決方法,需要的朋友可以參考下
    2024-01-01

最新評論

稷山县| 元谋县| 富蕴县| 定州市| 池州市| 封开县| 仪征市| 盐源县| 酒泉市| 江都市| 定南县| 华坪县| 临泽县| 石楼县| 集安市| 萝北县| 庆云县| 淄博市| 儋州市| 绥阳县| 县级市| 尼勒克县| 慈溪市| 根河市| 兴城市| 嘉义市| 个旧市| 江门市| 行唐县| 长武县| 上虞市| 定州市| 泰顺县| 文登市| 岗巴县| 金乡县| 中宁县| 闽侯县| 黄龙县| 天峻县| 星子县|