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

MySQL 5.6下table_open_cache參數(shù)優(yōu)化合理配置詳解

 更新時(shí)間:2021年07月01日 11:30:13   作者:寂寞無(wú)言飄過(guò)  
這篇文章主要介紹了MySQL 5.6下table_open_cache參數(shù)合理配置詳解,需要的朋友可以參考下

1、簡(jiǎn)介

table_cache是一個(gè)非常重要的MySQL性能參數(shù),它在5.1.3之后的版本中叫做table_open_cache。table_cache主要用于設(shè)置table高速緩存的數(shù)量。由于每個(gè)客戶端連接都會(huì)至少訪問(wèn)一個(gè)表,因此此參數(shù)的值與max_connections有關(guān)。
例如,對(duì)于 1000 個(gè)并行運(yùn)行的連接,應(yīng)該讓表的緩存至少有 1000 × N ,這里 N 是應(yīng)用可以執(zhí)行的查詢的一個(gè)聯(lián)接中表的最大數(shù)量。此外,還需要為臨時(shí)表和文件保留一些額外的文件描述符。

2、緩存機(jī)制

當(dāng)某一連接訪問(wèn)一個(gè)表時(shí),MySQL會(huì)檢查當(dāng)前已緩存表的數(shù)量。如果該表已經(jīng)在緩存中打開(kāi),則會(huì)直接訪問(wèn)緩存中的表已加快查詢速度;如果該表未被緩存,則會(huì)將當(dāng)前的表添加進(jìn)緩存并進(jìn)行查詢。

在執(zhí)行緩存操作之前,table_open_cache用于限制緩存表的最大數(shù)目:如果當(dāng)前已經(jīng)緩存的表未達(dá)到table_open_cache,則會(huì)將新表添加進(jìn)來(lái);若已經(jīng)達(dá)到此值,MySQL將根據(jù)緩存表的最后查詢時(shí)間、查詢率等規(guī)則釋放之前的緩存。每當(dāng)MySQL訪問(wèn)一個(gè)表時(shí),如果在表緩沖區(qū)中還有空間,該表就被打開(kāi)并放入其中,這樣可以更快地訪問(wèn)表內(nèi)容。

3、如何判斷

通過(guò)檢查峰值時(shí)間的狀態(tài)值Open_tables和Opened_tables,可以決定是否需要增加table_open_cache的值。

如果你發(fā)現(xiàn)open_tables等于table_open_cache,并且opened_tables在不斷增長(zhǎng),那么你就需要增加 table_open_cache的值了(上述狀態(tài)值可以使用SHOW GLOBAL STATUS LIKE ‘Open%tables'獲得)。

注意,不能盲目地把table_open_cache設(shè)置成很大的值。如果設(shè)置得太高,可能會(huì)造成文件描述符不足,從而造成性能不穩(wěn)定或者連接失敗。

Open_tables / Opened_tables >= 0.85

Open_tables / table_cache <= 0.95

4、建議

如果開(kāi)始沒(méi)有把握的話,把MySQL數(shù)據(jù)庫(kù)放在生產(chǎn)環(huán)境中試運(yùn)行一段時(shí)間,然后把參數(shù)的值調(diào)整得比Opened_tables的數(shù)值大一些,并且保證在比較高負(fù)載的極端條件下依然比Opened_tables略大。
在mysql默認(rèn)安裝情況下,table_cache的值在2G內(nèi)存以下的機(jī)器中的值默認(rèn)時(shí)256到 512,如果機(jī)器有4G內(nèi)存,則默認(rèn)這個(gè)值是2048,但這決意味著機(jī)器內(nèi)存越大,這個(gè)值應(yīng)該越大,因?yàn)閠able_cache加大后,使得mysql對(duì) SQL響應(yīng)的速度更快了,不可避免的會(huì)產(chǎn)生更多的死鎖(dead lock),這樣反而使得數(shù)據(jù)庫(kù)整個(gè)一套操作慢了下來(lái),嚴(yán)重影響性能。所以平時(shí)維護(hù)中還是要根據(jù)庫(kù)的實(shí)際情況去作出判斷,找到最適合你維護(hù)的庫(kù)的 table_cache值。

mysql >flush tables; 可以將open_tables 清零

# service mysqld restart 可以講opened_tables 清零

以下是針對(duì)mysql 5.6的說(shuō)明

table_open_cache指定表高速緩存的大小。每當(dāng)MySQL訪問(wèn)一個(gè)表時(shí),如果在表緩沖區(qū)中還有空間,該表就被打開(kāi)并放入其中,這樣可以更快地訪問(wèn)表內(nèi)容。
通過(guò)檢查峰值時(shí)間的狀態(tài)值Open_tables和Opened_tables,可以決定是否需要增加table_open_cache的值。
如果你發(fā)現(xiàn)open_tables等于table_open_cache,并且opened_tables在不斷增長(zhǎng),那么你就需要增加table_open_cache的值了(上述狀態(tài)值可通過(guò)SHOW GLOBAL STATUS LIKE ‘Open%tables'獲得)。
注意,不能盲目地把table_open_cache設(shè)置成很大的值,設(shè)置太大超過(guò)了shell的文件描述符(通過(guò)ulimit -n查看),造成文件描述符不足,從而造成性能不穩(wěn)定或者連接失敗。

測(cè)試環(huán)境:騰訊云CDB,內(nèi)存4000M,在控制臺(tái)查看到table_open_cache=512,監(jiān)測(cè)table_open_cache設(shè)置是否合理,是否需要優(yōu)化。

show variables like '%table_open_cache%';

show global status like 'Open%tables';

發(fā)現(xiàn)open_tables等于table_open_cache,都是512,說(shuō)明mysql正在將緩存的表釋放以容納新的表,此時(shí)可能需要加大table_open_cache的值,4G內(nèi)存的機(jī)器,建議設(shè)置為2048

比較適合的值:

Open_tables / Opened_tables >= 0.85
Open_tables / table_open_cache <= 0.95

如果對(duì)此參數(shù)的把握不是很準(zhǔn),有個(gè)很保守的設(shè)置建議:把MySQL數(shù)據(jù)庫(kù)放在生產(chǎn)環(huán)境中試運(yùn)行一段時(shí)間,然后把參數(shù)的值調(diào)整得比Opened_tables的數(shù)值大一些,并且保證在比較高負(fù)載的極端條件下依然比Opened_tables略大。

相關(guān)文章

  • 5招帶你輕松優(yōu)化MySQL count(*)查詢性能

    5招帶你輕松優(yōu)化MySQL count(*)查詢性能

    最近在公司優(yōu)化了幾個(gè)慢查詢接口的性能,總結(jié)了一些心得體會(huì)拿出來(lái)跟大家一起分享一下,文中的示例代碼講解詳細(xì),希望對(duì)大家會(huì)有所幫助
    2022-11-11
  • MySQL最大連接數(shù)限制的修改步驟

    MySQL最大連接數(shù)限制的修改步驟

    針對(duì)一些訪問(wèn)量比較大的網(wǎng)站,Mysql默認(rèn)的最大連接數(shù)可能不夠用,需要進(jìn)行相應(yīng)的修改,下面這篇文章主要給大家介紹了關(guān)于MySQL最大連接數(shù)限制的修改步驟,需要的朋友可以參考下
    2022-07-07
  • mysql使用教程之分區(qū)表的使用方法(刪除分區(qū)表)

    mysql使用教程之分區(qū)表的使用方法(刪除分區(qū)表)

    mysql分區(qū)表使用方法,新增分區(qū)、刪除分區(qū)、分區(qū)的合并、分區(qū)的拆分等使用方法
    2013-12-12
  • MYSQL清空表和截?cái)啾韱?wèn)題

    MYSQL清空表和截?cái)啾韱?wèn)題

    這篇文章主要介紹了MYSQL清空表和截?cái)啾韱?wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Windows8下mysql 5.6.15 安裝配置方法圖文教程

    Windows8下mysql 5.6.15 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Windows8下mysql 5.6.15 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MariaDB(MySQL)創(chuàng)建、刪除、選擇及數(shù)據(jù)類型使用詳解

    MariaDB(MySQL)創(chuàng)建、刪除、選擇及數(shù)據(jù)類型使用詳解

    這篇文章主要介紹了MariaDB(MySQL)創(chuàng)建、刪除、選擇及數(shù)據(jù)類型使用詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • mysql替換表中的字符串的sql語(yǔ)句

    mysql替換表中的字符串的sql語(yǔ)句

    替換字段里數(shù)據(jù)內(nèi)容部分字符串,這個(gè)在替換網(wǎng)址呀什么的最經(jīng)常用了,發(fā)布一下做個(gè)筆記
    2008-06-06
  • MySQL數(shù)據(jù)庫(kù)高級(jí)數(shù)據(jù)操作之新增數(shù)據(jù)

    MySQL數(shù)據(jù)庫(kù)高級(jí)數(shù)據(jù)操作之新增數(shù)據(jù)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)高級(jí)數(shù)據(jù)操作之新增數(shù)據(jù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • MySQL InnoDB表空間加密示例詳解

    MySQL InnoDB表空間加密示例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL InnoDB表空間加密的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • MySQL深入淺出精講觸發(fā)器用法

    MySQL深入淺出精講觸發(fā)器用法

    觸發(fā)器是SQLserver提供給程序員和數(shù)據(jù)分析員來(lái)保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過(guò)程,事件是在 MySQL 5.1后引入的,有點(diǎn)類似操作系統(tǒng)的計(jì)劃任務(wù),但是周期性任務(wù)是內(nèi)置在MySQL服務(wù)端執(zhí)行的
    2022-08-08

最新評(píng)論