
MariaDB(11.4 GA)解决了MySQL临时表空间无限增大的问题
受影响版本:MySQL 5.7 和 8.0
1.创建一个包含1000万行记录的 sbtest1 表(可以使用 sysbench 工具生成数据)。
2.创建一个临时表 sbtest2,其结构与 sbtest1 相同:
mysql> CREATE TEMPORARY TABLE sbtest2 LIKE sbtest1;3.向临时表sbtest2 插入1000行数据:
mysql> INSERT INTO sbtest2 SELECT * FROM sbtest1;4.退出会话,临时表sbtest2 被系统自动删除:
mysql> EXIT;5.然而,在MySQL中,InnoDB 临时表(例如 ibtmp1)所占的空间不会被释放,导致专用共享表空间不断增大。
在MariaDB中,您可以通过设置 innodb_truncate_temporary_tablespace_now 系统变量,在无需重启数据库的情况下缩减临时表空间:
MariaDB> SET GLOBAL innodb_truncate_temporary_tablespace_now = 1;这一改进有效避免了MySQL中临时表空间持续膨胀的问题。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。