91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

MySQL中table_cache如何優化

發布時間:2022-01-19 15:35:38 來源:億速云 閱讀:208 作者:小新 欄目:數據庫

這篇文章主要介紹了MySQL中table_cache如何優化,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

table_cache 參數設置表高速緩存的數目。每個連接進來,都會至少打開一個表緩存。因此, table_cache 的大小應與 max_connections 的設置有關。例如,對于 200 個并行運行的連接,應該讓表的緩存至少有 200 × N ,這里 N 是應用可以執行的查詢的一個聯接中表的最大數量。此外,還需要為臨時表和文件保留一些額外的文件描述符。
當 Mysql 訪問一個表時,如果該表在緩存中已經被打開,則可以直接訪問緩存;如果還沒有被緩存,但是在 Mysql 表緩沖區中還有空間,那么這個表就被打開并放入表緩沖區;如果表緩存滿了,則會按照一定的規則將當前未用的表釋放,或者臨時擴大表緩存來存放,使用表緩存的好處是可以更快速地訪問表中的內容。
執行 flush tables 會清空緩存的內容。一般來說,可以通過查看運行峰值時間的狀態值 Open_tables 和 Opened_tables ,判斷是否需要增加 table_cache 的值。其中 open_tables 是當前打開的表的數量, Opened_tables 則是已經打開的表的數量。下面我們的例子顯示了這兩個狀態值的變化情況:
首先,清空表緩存:
> flush tables;
Query OK, 0 rows affected (0.00 sec)
察看當前的表緩存情況:
mysql> show global status like open%_tables;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 0 |
| Opened_tables | 543 |
+---------------+-------+
2 rows in set (0.00 sec)
在當前連接訪問一個表:
mysql> select count(*) from t1;
+----------+
| count(*) |
+----------+
| 4 |
+----------+
1 row in set (0.03 sec)
mysql> show global status like open%_tables;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 1 |
| Opened_tables | 544 |
+---------------+-------+
2 rows in set (0.00 sec)
Open_tables和opened_tables都增加1。
再訪問一個其他表,可以看到兩個參數都增加。
mysql> select count(*) from t2;
+----------+
| count(*) |
+----------+
| 1 |
+----------+
1 row in set (0.06 sec)
mysql> show global status like open%_tables;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 2 |
| Opened_tables | 545 |
+---------------+-------+
2 rows in set (0.00 sec)
再訪問表t1的時候:
mysql> select * from t1;
+------+
| id |
+------+
| 2 |
| 1 |
| 1 |
| 3 |
+------+
4 rows in set (0.02 sec)
mysql> show global status like open%_tables;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 2 |
| Opened_tables | 545 |
+---------------+-------+
2 rows in set (0.00 sec)
兩個參數都沒有變化,因為該表已經在表緩存中打開了,沒有重復打開。
如果發現 open_tables 接近 table_cache 的時候,并且 Opened_tables 這個值在逐步增加,那就說明可能 table_cache 設置的偏小,經常需要將緩存的表清出,將新的表放入緩存,這時可以考慮增加這個參數的大小來改善訪問的效率

感謝你能夠認真閱讀完這篇文章,希望小編分享的“MySQL中table_cache如何優化”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

凤凰县| 定结县| 河东区| 永安市| 江陵县| 正镶白旗| 富川| 祁门县| 华蓥市| 宁都县| 子洲县| 济宁市| 甘南县| 团风县| 新宾| 河西区| 本溪市| 长宁区| 嘉兴市| 巴南区| 普安县| 罗田县| 晋城| 呼和浩特市| 泰来县| 葫芦岛市| 东光县| 商都县| 景东| 崇州市| 鄂伦春自治旗| 磐安县| 文昌市| 印江| 浦北县| 依兰县| 崇左市| 襄垣县| 金溪县| 襄汾县| 乐昌市|