MySQL服務器創建的臨時文件的數量多少合適呢?下面就對MySQL服務器創建臨時文件數的合理配置作詳盡的分析討論,供您參考。
- MySQL> show global status like 'created_tmp%';
- +-------------------------+---------+
- | Variable_name | Value |
- +-------------------------+---------+
- | Created_tmp_disk_tables | 21197 |
- | Created_tmp_files | 58 |
- | Created_tmp_tables | 1771587 |
- +-------------------------+---------+
每次創建臨時表,Created_tmp_tables增加,如果是在磁盤上創建臨時表,Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL服務創建的臨時文件文件數,比較理想的配置是:
- Created_tmp_disk_tables / Created_tmp_tables * 100%
比如上面的服務器Created_tmp_disk_tables / Created_tmp_tables * 100% = 1.20%,應該相當好了。我們再看一下MySQL服務器對臨時表的配置:
- MySQL> show variables where Variable_name in ('tmp_table_size', 'max_heap_table_size');
- +---------------------+-----------+
- | Variable_name | Value |
- +---------------------+-----------+
- | max_heap_table_size | 268435456 |
- | tmp_table_size | 536870912 |
- +---------------------+-----------+
只有256MB以下的臨時表才能全部放內存,超過的就會用到硬盤臨時表。