国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

MySQL 5.6下table_open_cache參數優(yōu)化合理配置的示例分

發(fā)布時(shí)間:2021-08-08 19:37 來(lái)源:億速云 閱讀:0 作者:小新 欄目: Mysql 歡迎投稿:712375056

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

1、簡(jiǎn)介

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

2、緩存機制

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

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

3、如何判斷

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

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

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

Open_tables / Opened_tables >= 0.85

Open_tables / table_cache <= 0.95

4、建議

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

mysql >flush tables; 可以將open_tables 清零

# service mysqld restart 可以講opened_tables 清零

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

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

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

show variables like '%table_open_cache%';

show global status like 'Open%tables';

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

比較適合的值:

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

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

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

亚洲国产成人精品无码区2021| 国产日韩欧美亚欧在线| 大地资源网在线观看免费官网| 亚洲色大成网站WWW国产| 国产精品国产精品国产专区不卡| 亚洲色偷偷综合亚洲AVYP|