重要的参数

发布时间 2023-04-05 07:26:02作者: bingo-HF

1. 内部排序操作临时表

  • max_heap_table_size 决定使用内存的大小,默认是 16M
    • 无论该表使用的什么引擎,只要使用到临时表,或者指定Memory,都受参数影响
  • 当上面设置的内存放不下数据时,(>=5.6)转为MyISAM,(>=5.7)转为InnoDB
    • 注意磁盘上临时路径空间的大小( tmpdir )
  • 内存使用为会话(SESSION)级别,当心内核OOM
[root@mysql.sock][(none)]> show global status like "%tmp%tables";
+-------------------------+-------+
| Variable_name                 | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 0     | -- 内存放不下,转成磁盘存储的数量,如果数量过大,考虑增大内存参数
| Created_tmp_tables         | 1     | -- 创建临时表的数量。比较理想的是Created_tmp_disk_tables / Created_tmp_tables * 100% <= 25%,如果接近这个值就需要调整max_heap_table_size大小
+-------------------------+-------+
2 rows in set (0.00 sec)


[root@mysql.sock][(none)]> show variables like "tmpdir";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir      | /tmp  | -- memory转成磁盘存储的路径,可以在配置文件中改成数据目录(tmpdir = /data/mysql_data/)
+---------------+-------+
1 row in set (0.00 sec)