Mariadb

opens_tables 計數迅速增加

  • December 31, 2021

一段時間後,打開的表的數量迅速增加。

MariaDB [(none)]> show global status like 'open%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| Open_files               | 6      |
| Open_streams             | 0      |
| Open_table_definitions   | 1200   |
| Open_tables              | 1200   |
| Opened_files             | 791203 |
| Opened_plugin_libraries  | 0      |
| Opened_table_definitions | 788523 |
| Opened_tables            | 807692 |
| Opened_views             | 0      |
+--------------------------+--------+
9 rows in set (0.00 sec)

MariaDB [(none)]> show global status like 'up%';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| Update_scan               | 200   |
| Uptime                    | 2028  |
| Uptime_since_flush_status | 2028  |

how global status like '%conn%';
+-----------------------------------------------+-------+
| Variable_name                                 | Value |
+-----------------------------------------------+-------+
| Aborted_connects                              | 2     |
| Connection_errors_accept                      | 0     |
| Connection_errors_internal                    | 0     |
| Connection_errors_max_connections             | 0     |
| Connection_errors_peer_address                | 0     |
| Connection_errors_select                      | 0     |
| Connection_errors_tcpwrap                     | 0     |
| Connections                                   | 151   |
| Max_used_connections                          | 13    |
| Performance_schema_session_connect_attrs_lost | 0     |
| Slave_connections                             | 0     |
| Slaves_connected                              | 0     |
| Ssl_client_connects                           | 0     |
| Ssl_connect_renegotiates                      | 0     |
| Ssl_finished_connects                         | 0     |
| Threads_connected                             | 12    |
| wsrep_connected                               | OFF   |
+-----------------------------------------------+-------+

select count(*) from information_schema.tables;
+----------+
| count(*) |
+----------+
|     1986 |
+----------+

任何人都可以建議如何調查為什麼打開的表計數如此迅速地增加以及如何解決這個問題?

您能否確認在這 30 分鐘的數據庫正常執行時間內您正在執行什麼負載?這實際上是打開的表總數的累積值,較小的表打開記憶體或創建臨時表可以增加此值。

粘貼 CREATED_TMP_TABLES、TABLE_OPEN_CACHE 的值。還要在您的機器上粘貼此數據庫可用的總記憶體。

謝謝

您的系統中有多少張表?這將回答這個問題,也會Opened_tables增加那個數字

SELECT COUNT(*), MAX(table_rows) FROM information_schema.TABLES;

我的觀點是,可能有一些你不知道的事情正在發生,導致很多桌子空缺。如果您正在使用一些需要獲取模式資訊的第 3 方軟體(可能會一遍又一遍),則尤其如此。

引用自:https://dba.stackexchange.com/questions/235252