我用的是MySQL 5.7我有一张大约150GB的表,电脑上的存储空间只有200GB。所以我想把这张表上9个月以上的数据去掉。所以我的计划是使用where子句转储表,然后截断表,并重新插入转储。使用where子句创建转储会创建临时表吗?在导出所有数据之前,我会用完临时表中的存储空间。我在尝试常规删除语句时遇到的问题是,从创建临时表到删除,表锁定和存储空间迅速填满。至少我认为这是我尝试删除时发生的情况
6ojccjat1#
您可以让mysqldump在不使用任何临时空间的情况下运行。在命令行中使用--opt开关。至少使用--quick开关。您可以使用一个简单的WHERE子句,它仍然可以工作。并确保在具有足够硬盘空间来存储输出.sql文件的计算机上运行该命令。
1条答案
按热度按时间6ojccjat1#
您可以让mysqldump在不使用任何临时空间的情况下运行。在命令行中使用--opt开关。至少使用--quick开关。
您可以使用一个简单的WHERE子句,它仍然可以工作。
并确保在具有足够硬盘空间来存储输出.sql文件的计算机上运行该命令。