我在生产环境中的 64GB RAM 机器上有一个 +-40GB 的 MySQL 5.5 DB。所有表都是 InnoDB。还有一个从站作为备份运行。
一张表——最重要的一张——增长到 150M 行,插入和删除变得很慢。为了加快插入和删除,我删除了一半的表。这并没有像预期的那样加速;插入和删除仍然很慢。
我读过跑步OPTIMIZE TABLE
可以在这种情况下提供帮助。据我了解,此操作需要对整个表进行读取锁定,并且在大表上优化表可能需要相当长的时间。
什么是优化此表同时最小化停机时间的好策略?
编辑要优化的特定表有 +- 91M 行,如下所示:
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| channel_key | varchar(255) | YES | MUL | NULL | |
| track_id | int(11) | YES | MUL | NULL | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
| posted_at | datetime | YES | | NULL | |
| position | varchar(255) | YES | MUL | NULL | |
| dead | int(11) | YES | | 0 | |
+-------------+--------------+------+-----+---------+----------------+