我在MySQL表上运行优化表,大小为340 is,存储引擎是InnoDB。
mysql> show variables like '%tmp%';
+----------------------------+------------------+
| Variable_name | Value |
+----------------------------+------------------+
| default_tmp_storage_engine | InnoDB |
| innodb_tmpdir | |
| max_tmp_tables | 32 |
| slave_load_tmpdir | /dbtmp/mysql_tmp |
| tmp_table_size | 33554432 |
| tmpdir | /dbtmp/mysql_tmp |tmpdir目录正在填充空间。
/dev/mapper/vgdbtmp-lvdbtmp
296G 231G 51G 83% /dbtmp什么是优化表而不创建表副本的替代解决方案。
MySQL 5.6版本
mysql> select version();
+------------+
| version() |
+------------+
| 5.6.46-log |
+------------+
1 row in set (0.01 sec)我已经阅读了下面的MySQL链接。
https://dev.mysql.com/doc/refman/5.6/en/optimize-table.html
Prior to Mysql 5.6.17, OPTIMIZE TABLE does not use online DDL. Consequently, concurrent DML (INSERT, UPDATE, DELETE) is not permitted on a table while OPTIMIZE TABLE is running, and secondary indexes are not created as efficiently.
但是,目前没有人在表上触发DDL/DML/select。
它应该在不创建表副本的情况下在线运行,对吗?
发布于 2020-09-01 23:33:36
OPTIMIZE TABLE对InnoDB几乎毫无用处。你为什么要运行它?OPTIMIZE TABLE表必须复制表。ALTER TABLE的口味也是如此。因此,您必须有足够的空闲磁盘空间,与表在相同的FS中更好。ALTERs,在这里可能会有所帮助。pt-online-schema-change避免了模式更改期间的阻塞写入。gh-ost也是。这些可能需要extas磁盘空间,因此可能与此无关。这个故事的寓意..。不要让磁盘太满,以至于无法复制最大表的完整副本。
https://dba.stackexchange.com/questions/259790
复制相似问题