中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL 5.6下table_open_cache參數優化合理配置的示例分析

發布時間:2021-07-29 11:21:38 來源:億速云 閱讀:137 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹MySQL 5.6下table_open_cache參數優化合理配置的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1、簡介

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

2、緩存機制

當某一連接訪問一個表時,MySQL會檢查當前已緩存表的數量。如果該表已經在緩存中打開,則會直接訪問緩存中的表已加快查詢速度;如果該表未被緩存,則會將當前的表添加進緩存并進行查詢。

在執行緩存操作之前,table_open_cache用于限制緩存表的最大數目:如果當前已經緩存的表未達到table_open_cache,則會將新表添加進來;若已經達到此值,MySQL將根據緩存表的最后查詢時間、查詢率等規則釋放之前的緩存。每當MySQL訪問一個表時,如果在表緩沖區中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內容。

3、如何判斷

通過檢查峰值時間的狀態值Open_tables和Opened_tables,可以決定是否需要增加table_open_cache的值。

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

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

MySQL 5.6下table_open_cache參數優化合理配置的示例分析

Open_tables / Opened_tables >= 0.85

Open_tables / table_cache <= 0.95

4、建議

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

mysql >flush tables; 可以將open_tables 清零

# service mysqld restart 可以講opened_tables 清零

以下是針對mysql 5.6的說明

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

測試環境:騰訊云CDB,內存4000M,在控制臺查看到table_open_cache=512,監測table_open_cache設置是否合理,是否需要優化。

show variables like '%table_open_cache%';

MySQL 5.6下table_open_cache參數優化合理配置的示例分析

show global status like 'Open%tables';

MySQL 5.6下table_open_cache參數優化合理配置的示例分析

發現open_tables等于table_open_cache,都是512,說明mysql正在將緩存的表釋放以容納新的表,此時可能需要加大table_open_cache的值,4G內存的機器,建議設置為2048

比較適合的值:

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

如果對此參數的把握不是很準,有個很保守的設置建議:把MySQL數據庫放在生產環境中試運行一段時間,然后把參數的值調整得比Opened_tables的數值大一些,并且保證在比較高負載的極端條件下依然比Opened_tables略大。

以上是“MySQL 5.6下table_open_cache參數優化合理配置的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青岛市| 额尔古纳市| 定州市| 阜康市| 广丰县| 昌黎县| 绵阳市| 固始县| 太仆寺旗| 灵川县| 肥城市| 冀州市| 山丹县| 龙海市| 阿拉善右旗| 洛隆县| 大石桥市| 托里县| 宁晋县| 虹口区| 长沙县| 洛川县| 高清| 邯郸县| 崇信县| 化隆| 乌拉特前旗| 东兰县| 拉萨市| 英山县| 蚌埠市| 宁海县| 阿荣旗| 梅河口市| 凤阳县| 兰溪市| 禄劝| 湘乡市| 岢岚县| 罗江县| 昭苏县|