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

詳解分析MySQL8.0的內(nèi)存消耗

 更新時(shí)間:2021年03月23日 11:52:20   作者:AsiaYe  
這篇文章主要介紹了詳解分析MySQL8.0的內(nèi)存消耗,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下

  在MySQL8.0在啟動(dòng)的時(shí)候,會(huì)配置各種各樣的buffer和cache來提高數(shù)據(jù)庫(kù)的性能。如果我們?cè)谝慌_(tái)服務(wù)器上配置了MySQL8.0的服務(wù),那么這臺(tái)服務(wù)器的內(nèi)存會(huì)同時(shí)被操作系統(tǒng)、MySQL8.0服務(wù)、以及其他應(yīng)用程序所共享。

   生產(chǎn)環(huán)境中,經(jīng)常會(huì)遇到內(nèi)存的報(bào)警,在處理這些報(bào)警之前,你需要知道MySQL本身消耗內(nèi)存最多的點(diǎn)在哪里,這樣才能比較直觀的判斷出來你的MySQL服務(wù)占用的內(nèi)存有多少,以及如何降低MySQL本身的內(nèi)存消耗。

   在MySQL配置文件中,最常用的兩個(gè)內(nèi)存相關(guān)的參數(shù)是innodb_buffer_pool_size、innodb_log_buffer_size,我們來看這兩個(gè)參數(shù)。

1、innodb_buffer_pool_size

這個(gè)參數(shù)定義了buffer pool的大小,大家可能都比較熟悉,buffer pool中的內(nèi)容包含innodb 表、索引、以及其他的輔助buffer,buffer pool的大小對(duì)MySQL系統(tǒng)性能影響比較大,默認(rèn)情況下,MySQL8.0配置的buffer pool大小是128MB,通常情況下,如果是單機(jī)單實(shí)例,沒有其他業(yè)務(wù),那么MySQL官方建議配置的大小為系統(tǒng)內(nèi)存的50%到75%之間。當(dāng)然,如果你的服務(wù)器上還部署了其他的應(yīng)用程序,那么你需要酌情減小這個(gè)比例,從而騰出內(nèi)存。

如果你的操作系統(tǒng)的內(nèi)存很充裕,你可以設(shè)置多個(gè)innodb buffer pool實(shí)例,可以使用下面的參數(shù)來調(diào)整這個(gè)實(shí)例的個(gè)數(shù):

mysql> show variables like '%innodb_buffer_pool_instances%';
+------------------------------+-------+
| Variable_name    | Value |
+------------------------------+-------+
| innodb_buffer_pool_instances | 1  |
+------------------------------+-------+
1 row in set (0.00 sec)

2、innodb_log_buffer_size

這個(gè)參數(shù)定義了innodb存儲(chǔ)引擎向磁盤上寫redo log之前,最多在內(nèi)存中緩存數(shù)據(jù)的大小,默認(rèn)是16MB。這個(gè)值增加之后,大的事務(wù)可以不用在事務(wù)提交之前將redo log落盤。如果你的update、delete和insert操作影響行數(shù)比較多,那么你需要考慮增大這個(gè)值。

重點(diǎn)來了:

在操作系統(tǒng)里面,MySQL占用的內(nèi)存不僅僅是上述兩個(gè)內(nèi)存配置參數(shù)有關(guān),通常情況下,我們計(jì)算MySQL占用的內(nèi)存的時(shí)候,會(huì)使用下面4個(gè)值相加的方式:

1、innodb_buffer_pool_size

2、key_buffer_size  (這個(gè)參數(shù)通常是myisam表占用內(nèi)存的關(guān)鍵參數(shù))

3、max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) (這三個(gè)是連接級(jí)別的buffer)

4、max_connections*2MB

所以當(dāng)你使用top命令看到你的MySQL占用的內(nèi)存遠(yuǎn)遠(yuǎn)超過innodb_buffer_pool_size的時(shí)候,你需要考慮的另外一個(gè)關(guān)鍵因素是連接數(shù)是否超標(biāo)了,一旦連接數(shù)過高,那么上述3、4這兩部分消耗的內(nèi)存將會(huì)非常多。

當(dāng)然,上面列舉的,是MySQL最主要占用內(nèi)存的幾個(gè)因素,除此之外,其他的內(nèi)存消耗的地方,可以查看官方文檔:

https://dev.mysql.com/doc/refman/8.0/en/memory-use.html

上述文檔中,還有介紹我們?nèi)绾问褂胮erformance_schema來監(jiān)控MySQL的內(nèi)存使用,這里我提一下整個(gè)流程,詳細(xì)的細(xì)節(jié)以及參數(shù)介紹請(qǐng)參看官方文檔。

1、查看

performance_schema.setup_instruments

這張表,找到你關(guān)注的內(nèi)存變量的名稱(直接搜索,結(jié)果有490多條,分為好幾個(gè)大類,一定記得過濾自己關(guān)注的參數(shù))。舉個(gè)例子,我們搜索memory/innodb相關(guān)參數(shù),代表innodb存儲(chǔ)引擎占用的內(nèi)存,結(jié)果如下:

mysql> SELECT * FROM performance_schema.setup_instruments  WHERE NAME LIKE '%memory/innodb%';
+-------------------------------------------+---------+-------+-------------------+------------+---------------+
| NAME          | ENABLED | TIMED | PROPERTIES  | VOLATILITY | DOCUMENTATION |
+-------------------------------------------+---------+-------+-------------------+------------+---------------+
| memory/innodb/adaptive hash index   | YES  | NULL |     |   0 | NULL   |
| memory/innodb/log and page archiver  | YES  | NULL |     |   0 | NULL   |
| memory/innodb/buf_buf_pool    | YES  | NULL | global_statistics |   0 | NULL   |
| memory/innodb/buf_stat_per_index_t  | YES  | NULL |     |   0 | NULL   |
| memory/innodb/clone      | YES  | NULL |     |   0 | NULL   |
| memory/innodb/dict_stats_bg_recalc_pool_t | YES  | NULL |     |   0 | NULL   |
| memory/innodb/dict_stats_index_map_t  | YES  | NULL |     |   0 | NULL   |
| memory/innodb/dict_stats_n_diff_on_level | YES  | NULL |     |   0 | NULL   |
| memory/innodb/other      | YES  | NULL |     |   0 | NULL   |
| memory/innodb/partitioning    | YES  | NULL |     |   0 | NULL   |
| memory/innodb/row_log_buf     | YES  | NULL |     |   0 | NULL   |
| memory/innodb/row_merge_sort    | YES  | NULL |     |   0 | NULL   |
| memory/innodb/std       | YES  | NULL |     |   0 | NULL   |
| memory/innodb/trx_sys_t::rw_trx_ids  | YES  | NULL |     |   0 | NULL   |
| memory/innodb/undo::Tablespaces   | YES  | NULL |     |   0 | NULL   |
| memory/innodb/ut_lock_free_hash_t   | YES  | NULL |     |   0 | NULL   |
| memory/innodb/api0api      | YES  | NULL |     |   0 | NULL   |
| memory/innodb/api0misc     | YES  | NULL |     |   0 | NULL   |
| memory/innodb/btr0btr      | YES  | NULL |     |   0 | NULL   |

2、在配置文件中寫上相關(guān)的參數(shù),開啟統(tǒng)計(jì),以memory/innodb/row_log_buf為例,配置文件修改的如下:

performance-schema-instrument='memory/innodb/row_log_buf=COUNTED'

3、啟動(dòng)實(shí)例,并在performance_schema數(shù)據(jù)庫(kù)的memory_summary_global_by_event_name表中查看內(nèi)存統(tǒng)計(jì)結(jié)果。

SELECT * FROM performance_schema.memory_summary_global_by_event_name WHERE EVENT_NAME LIKE 'memory/innodb/row_log_buf'\G

當(dāng)然,你還可以根據(jù)sys表中的結(jié)果,查看每個(gè)大類的聚合結(jié)果,如下:

mysql> SELECT SUBSTRING_INDEX(event_name,'/',2) AS
  code_area, FORMAT_BYTES(SUM(current_alloc))
  AS current_alloc
  FROM sys.x$memory_global_by_current_bytes
  GROUP BY SUBSTRING_INDEX(event_name,'/',2)
  ORDER BY SUM(current_alloc) DESC;
+---------------------------+---------------+
| code_area     | current_alloc |
+---------------------------+---------------+
| memory/innodb    | 843.24 MiB |
| memory/performance_schema | 81.29 MiB  |
| memory/mysys    | 8.20 MiB  |
| memory/sql    | 2.47 MiB  |
| memory/memory    | 174.01 KiB |
| memory/myisam    | 46.53 KiB  |
| memory/blackhole   | 512 bytes  |
| memory/federated   | 512 bytes  |
| memory/csv    | 512 bytes  |
| memory/vio    | 496 bytes  |
+---------------------------+---------------+

更詳細(xì)的信息,請(qǐng)參見官方文檔。

以上就是詳解分析MySQL8.0的內(nèi)存消耗的詳細(xì)內(nèi)容,更多關(guān)于MySQL8.0 內(nèi)存消耗的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mysql數(shù)據(jù)庫(kù)不同官方版本對(duì)比詳細(xì)分析

    Mysql數(shù)據(jù)庫(kù)不同官方版本對(duì)比詳細(xì)分析

    MySQL是一個(gè)流行的開源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),有多個(gè)版本,這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)不同官方版本對(duì)比的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • 一文讀懂navicat for mysql基礎(chǔ)知識(shí)

    一文讀懂navicat for mysql基礎(chǔ)知識(shí)

    Navicat是一個(gè)強(qiáng)大的MySQL數(shù)據(jù)庫(kù)管理和開發(fā)工具。Navicat為專業(yè)開發(fā)者提供了一套強(qiáng)大的足夠尖端的工具,但它對(duì)于新用戶仍然是易于學(xué)習(xí)。本文重點(diǎn)給大家介紹navicat for mysql基礎(chǔ)知識(shí),感興趣的朋友一起學(xué)習(xí)吧
    2021-05-05
  • Linux下Mysql5.6 二進(jìn)制安裝過程

    Linux下Mysql5.6 二進(jìn)制安裝過程

    這篇文章主要介紹了Linux下Mysql5.6 二進(jìn)制安裝過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • MySQL慢查詢之開啟慢查詢

    MySQL慢查詢之開啟慢查詢

    開啟慢查詢?nèi)罩荆梢宰孧ySQL記錄下查詢超過指定時(shí)間的語(yǔ)句,通過定位分析性能的瓶頸,才能更好的優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)的性能。下面這篇文章主要介紹了關(guān)于MySQL開啟慢查詢的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • mysql 復(fù)制原理與實(shí)踐應(yīng)用詳解

    mysql 復(fù)制原理與實(shí)踐應(yīng)用詳解

    這篇文章主要介紹了mysql 復(fù)制原理與實(shí)踐應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了MySQL數(shù)據(jù)庫(kù)復(fù)制功能的原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • 一文詳解MySQL 存儲(chǔ)引擎

    一文詳解MySQL 存儲(chǔ)引擎

    本文主要介紹了一文詳解MySQL存儲(chǔ)引擎,常用兩種存儲(chǔ)引擎是MyISAM和InnoDB,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • MySQL數(shù)據(jù)表分區(qū)技術(shù)PARTITION詳解

    MySQL數(shù)據(jù)表分區(qū)技術(shù)PARTITION詳解

    在處理大規(guī)模數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)性能的優(yōu)化變得尤為重要,MySQL提供了一種稱為“分區(qū)”(Partitioning)的技術(shù),可以顯著提高查詢效率和管理大型數(shù)據(jù)庫(kù)表的能力,本文將詳細(xì)介紹MySQL中的數(shù)據(jù)表分區(qū)技術(shù),包括其基本概念、類型以及如何實(shí)現(xiàn)和維護(hù),需要的朋友可以參考下
    2025-02-02
  • Mysql如何查詢鎖表

    Mysql如何查詢鎖表

    這篇文章主要介紹了Mysql如何查詢鎖表問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mysql遠(yuǎn)程登錄root賬戶報(bào)錯(cuò)1045的解決

    mysql遠(yuǎn)程登錄root賬戶報(bào)錯(cuò)1045的解決

    這篇文章主要介紹了mysql遠(yuǎn)程登錄root賬戶報(bào)錯(cuò)1045的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • mysql中取字符串中的數(shù)字的語(yǔ)句

    mysql中取字符串中的數(shù)字的語(yǔ)句

    在很多時(shí)間我們需要把字符串的數(shù)字給取出來,通常大家會(huì)用php,asp等這類來操作,本文章介紹了在sql中取字符中的數(shù)字辦法,有需要的朋友可以參考一下
    2012-04-04

最新評(píng)論

随州市| 新竹市| 建德市| 宁晋县| 桦川县| 湖北省| 大田县| 安图县| 台南市| 四会市| 昭觉县| 上饶县| 诸城市| 承德县| 名山县| 临安市| 泽普县| 永登县| 莒南县| 德兴市| 库车县| 普定县| 呈贡县| 黑河市| 乐山市| 滦平县| 郑州市| 连江县| 宜良县| 阳朔县| 南木林县| 阿瓦提县| 石泉县| 博乐市| 昌都县| 万全县| 南安市| 紫金县| 吉安县| 堆龙德庆县| 华蓥市|