官网说明:https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html
内存中内部临时表的最大大小。该变量不适用于用户创建的MEMORY表。
实际的限制是tmp_table_size和max_heap_table_size中较小的一个。当内存中的临时表超过限制时,MySQL自动将其转换为磁盘上的临时表。internal_tmp_disk_storage_engine选项定义了用于磁盘上临时表的存储引擎。
如果您执行许多高级GROUP BY查询,并且拥有大量内存,那么可以增加tmp_table_size(以及max_heap_table_size(如果必要的话)的值。
通过比较Created_tmp_disk_tables和Created_tmp_tables的值,可以比较创建的内部磁盘临时表的数量和创建的内部临时表的总数。https://www.cndba.cn/hbhe0316/article/22620https://www.cndba.cn/hbhe0316/article/22620
1.查看默认值为16Mhttps://www.cndba.cn/hbhe0316/article/22620
mysql> show variables like 'tmp_table_size';
+----------------+----------+
| Variable_name | Value |
+----------------+----------+
| tmp_table_size | 16777216 |
+----------------+----------+
1 row in set (0.00 sec)
2.设置global级别https://www.cndba.cn/hbhe0316/article/22620
mysql> set global tmp_table_size=32*1024*1024;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'tmp_table_size';
+----------------+----------+
| Variable_name | Value |
+----------------+----------+
| tmp_table_size | 16777216 |
+----------------+----------+
1 row in set (0.00 sec)
mysql> quit
Bye
[root@mysql57 ~]# /mysql/bin/mysql -uroot -pwwwwww -S /mysql/mysql.sock
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 4
Server version: 5.7.36-log MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
mysql> show variables like 'tmp_table_size';
+----------------+----------+
| Variable_name | Value |
+----------------+----------+
| tmp_table_size | 33554432 |
+----------------+----------+
1 row in set (0.00 sec)
3.设置/etc/my.cnf文件https://www.cndba.cn/hbhe0316/article/22620
[root@mysql57 ~]# cat /etc/my.cnf | grep -i tmp-table-size
tmp-table-size = 32M
[root@mysql57 ~]# service mysqld restart
Shutting down MySQL.... SUCCESS!
Starting MySQL.. SUCCESS!
版权声明:本文为博主原创文章,未经博主允许不得转载。
MYSQL