我有一个必须不时清理一次的 MyISAM 表(正在删除 12M 行中的大约 5M 行)。之后,我必须优化表,并且我知道如果我先删除索引,OPTIMIZE TABLE 会更快。问题是,
ALTER TABLE t1 DISABLE KEYS;
--> here
OPTIMIZE TABLE t1;
--> or here
ALTER TABLE t1 ENABLE KEYS;
MySQL 可能决定提供一些其他查询,这会导致多次缓慢的非索引表扫描,从而延迟进一步的步骤。
那么如何为其他线程锁定表呢?