欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL專用服務器自動配置參數的實現

 更新時間:2024年09月03日 10:13:29   作者:V1ncent Chen  
本文主要介紹了MySQL專用服務器自動配置參數的實現,MySQL8.0推出了專用數據庫服務器自動配置參數,通過打開innodb_dedicated_server,下面就來詳細的介紹一下,感興趣的可以了解一下

MySQL8.0推出了專用數據庫服務器自動配置參數,通過打開innodb_dedicated_server,數據庫會自己完成緩沖池大小,重做日志,磁盤刷新方式等一系列配置,且配置還會根據服務器的配置升級自行調整。

一、打開參數

需要注意的是innodb_dedicated_server只能在數據庫專用服務器上打開,因為打開此參數MySQL會盡可能多的使用服務器資源。如果服務器上還運行了其他應用,則不推薦打開此參數。

innodb_dedicated_server是一個靜態(tài)參數,我們需要通過配置文件來開打此特性,在my.cnf的[mysqld]或[server]模塊下添加下面參數后重啟mysqld,重啟后確認參數是否打開:

innodb_dedicated_server = on;

在這里插入圖片描述

此參數打開后,每次重啟MySQL都會評估服務器配置,服務器升級后,相關配置也會相應升級。

二、參數自動配置內容

打開innodb_dedicated_server后,MySQL會自動配置下列參數:

  • innodb_buffer_pool_size
  • innodb_log_file_size, innodb_log_files_in_group(MySQL8.0.30后廢棄)
  • innodb_redo_log_capacity(替代上面2個參數)
  • innodb_flush_method

2.1 innodb_buffer_pool_size

innodb_buffer_pool_size是緩沖池的大小,這是MySQL最關鍵的參數之一,buffer pool緩存了數據,索引等對象,足夠的大的緩沖池意味著可以緩存更多的內容,避免數據頻繁被刷回磁盤。在打開innodb_dedicated_server參數的情況下,MySQL按照下面的規(guī)則計算緩沖池大?。?/p>

服務器內存緩沖池大小
小于1G128M(默認值)
1G到4G服務器內存 * 50%
4G以上服務器內存 * 75%

注意:如果參數innodb_buffer_pool_size和innodb_dedicated_server同時配置,那么MySQL會按照innodb_buffer_pool_size配置buffer pool的大小,即buffer pool自動配置會失效。這里我的服務器內存是4G,按照自動配置應該是4G*0.5=2G,但啟動后buffer pool依然是1G:

在這里插入圖片描述

在這里插入圖片描述

將參數innodb_buffer_pool_size注銷后,重啟MySQL,可以看到buffer pool的大小變成了2G,自動配置成功:

在這里插入圖片描述

在這里插入圖片描述

2.2 innodb_log_file_size 和 innodb_log_files_in_group

innodb_log_file_size控制的是innodb重做日志的大小,它會根據自動配置規(guī)則計算出的緩沖池大小進行配置(不是顯式指定的innodb_buffer_pool_size值),配置規(guī)則如下(MySQL8.0.30后廢棄):

緩沖池大小重做日志大小
小于8G512M
8G到128G1G
大于128G2G

innodb_log_files_in_group控制innodb重做日志的數量,它也是根據自動配置規(guī)則計算出的緩沖池的大小進行配置,采用round(緩沖池的GB數)計算,最小值為2,配置規(guī)則如下(MySQL8.0.30后廢棄):

緩沖池大小重做日志數量(緩沖池大小單位為G)
小于8Ground(緩沖池大小)
8G到128Ground(緩沖池大小*0.75)
大于128G64

2.3 innodb_redo_log_capacity

inodb_redo_log_capacity配置重做日志文件可以占用的磁盤大小,這個參數是innodb_log_file_size和innodb_log_files_in_group的替代,默認的配置規(guī)則是:

  • 當inodb_redo_log_capacity顯式配置時,參數innodb_log_file_size和innodb_log_files_in_group將被忽略。
  • 當inodb_redo_log_capacity未顯式配置時,將使用innodb_log_file_size*innodb_log_files_in_group的值作為其配置。

當打開innodb_dedicated_server后,此參數計算規(guī)則在某些情況下會同時受到"服務器內存"和"緩沖池是否顯式配置(innodb_buffer_pool_size)"2個因素影響,計算規(guī)則如下:

服務器內存緩沖池innodb_redo_log_capacity(表內服務器內存大小單位為G)
小于2G無影響100M
2G到4G未顯式配置1G
2G到4G顯式配置round(0.5*服務器內存大小)*0.5G
4G到10.66G無影響round(0.75*服務器內存大小)*0.5G
10.66G170.66G無影響round(0.5625*服務器內存大小)*1G
170.66G以上無影響128G

2.4 innodb_flush_method

innodb_fulsh_method控制的是MySQL的數據文件和日志文件寫磁盤的方式,默認值為fsync,即每次寫磁盤實際寫入的是操作系統(tǒng)緩存,后續(xù)需要操作系統(tǒng)調用fsync才會真正將數據寫到磁盤上(innodb_flush_log_at_trx_commit=1這個經常推薦的安全設置就是事務提交時將日志寫入操作系統(tǒng)緩存后立刻調用sync寫入磁盤,防止系統(tǒng)崩潰導致事務丟失),而MySQL的buffer pool和redo log buffer已經實現了緩存,沒必要經過操作系統(tǒng)再緩存一次(反正都在內存中,斷電都會丟失,寫來寫去沒有意義)。

而打開innodb_dedicated_server后,innodb_flush_method會被嘗試設置為o_direct_no_fsync,數據文件和日志文件會忽略操作系統(tǒng)緩存直接寫磁盤文件并忽略fsync調用。如果設置不成功則會保持默認值。

show variables like 'innodb_flush_method';

在這里插入圖片描述

innodb_dedicated_server可以自動完成數據庫的部分參數配置,并且可以做到隨服務器升級自動升級。簡化了DBA的調試工作,在專有服務器上,還是推薦打開此參數(MySQL在參數的自適應調整上越來越像Oracle了)。

到此這篇關于MySQL專用服務器自動配置參數的實現的文章就介紹到這了,更多相關MySQL服務器自動配置參數內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL exists 和in 詳解及區(qū)別

    MySQL exists 和in 詳解及區(qū)別

    本文章向大家介紹MySQL exists 和in 使用方法以及他們之間的區(qū)別,需要的朋友可以參考下
    2017-01-01
  • MySQL庫表名大小寫的選擇

    MySQL庫表名大小寫的選擇

    一般在數據庫使用規(guī)范中,我們都會看到這么一條:庫名及表名一律使用小寫英文。你有沒有思考過,為什么推薦使用小寫呢?庫表名是否應該區(qū)分大小寫呢?帶著這些疑問,我們一起來看下本篇文章。
    2021-06-06
  • 詳解MySQL用事件調度器Event Scheduler創(chuàng)建定時任務

    詳解MySQL用事件調度器Event Scheduler創(chuàng)建定時任務

    事件調度器(Event Scheduler)是在MySQLv5.1.6中新增的一個功能,它相當于一個定時器,可以在指定的時間點執(zhí)行一條SQL語句或一個語句塊,也可以用于在固定間隔重復執(zhí)行。下面跟著小編一起來學習學習在MySQL中如何用事件調度器Event Scheduler創(chuàng)建定時任務
    2016-08-08
  • 一文詳解Mysql?insert也會發(fā)生死鎖嗎

    一文詳解Mysql?insert也會發(fā)生死鎖嗎

    死鎖的本質是資源競爭,批量插入如果順序不一致很容易導致死鎖,這篇文章主要給大家介紹了關于Mysql?insert是否也會發(fā)生死鎖的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • mysql是否需要容器化深入分析

    mysql是否需要容器化深入分析

    這篇文章主要為大家介紹了mysql是否需要容器化深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 詳解mysql數據庫如何開啟慢查詢日志

    詳解mysql數據庫如何開啟慢查詢日志

    這篇文章主要介紹了詳解mysql數據庫如何開啟慢查詢日志的相關資料,需要的朋友可以參考下
    2017-03-03
  • Linux系統(tǒng)下mysql的徹底卸載步驟

    Linux系統(tǒng)下mysql的徹底卸載步驟

    MySQL是一款常用的關系型數據庫管理系統(tǒng),但是在使用過程中,有時候需要卸載MySQL,有些用戶在卸載MySQL時會遇到一些問題,這篇文章主要給大家介紹了關于Linux系統(tǒng)下mysql的徹底卸載的相關資料,需要的朋友可以參考下
    2024-07-07
  • 麒麟系統(tǒng)上安裝?MySQL?8.0.24的詳細步驟(避坑指南)

    麒麟系統(tǒng)上安裝?MySQL?8.0.24的詳細步驟(避坑指南)

    這篇文章主要介紹了麒麟系統(tǒng)上安裝MySQL8.0.24的詳細步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 使用MySQL的LAST_INSERT_ID來確定各分表的唯一ID值

    使用MySQL的LAST_INSERT_ID來確定各分表的唯一ID值

    MySQL數據表結構中,一般情況下,都會定義一個具有‘AUTO_INCREMENT’擴展屬性的‘ID’字段,以確保數據表的每一條記錄都可以用這個ID唯一確定
    2011-08-08
  • MySQL是如何保證數據的完整性

    MySQL是如何保證數據的完整性

    這篇文章主要介紹了MySQL是如何保證數據的完整性,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08

最新評論