lib*_*eco 3 mysql optimization
我在MySQL中有一个InnoDB表,它曾经包含大约600k行.删除400k +行后,我的猜测是我需要运行一个OPTIMIZE.
但是,由于在此操作期间表将被锁定,因此该站点在此时将不可用.所以,我的问题是:我应该在实时数据库表上运行优化(略低于20万行)吗?或者是否可以创建该表的副本,在该副本上运行OPTIMIZE,然后重命名两个表,以便将数据复制回实时表?
如果您创建了一个副本,那么它应该已经优化了CREATE TABLE..AS SELECT...无需单独运行
但是,我会考虑复制200k行以保存到新表中,然后重命名表.这种方式是更少的步骤和更少的工作.
CREATE TABLE MyTableCopy AS
SELECT *
FROM myTable
WHERE (insert Keep condition here);
RENAME TABLE
myTable TO myTable_DeleteMelater,
MyTableCopy TO myTable;
Run Code Online (Sandbox Code Playgroud)