问题陈述:
在大型 MySQL 生产上创建索引表可能会导致数据库锁定。这对确保在索引过程中不间断地访问数据库提出了挑战。
解决方案:
从MySQL 5.6开始,数据库支持在操作过程中增量索引更新。这意味着索引创建或删除可以与读取和写入同时进行,从而降低阻塞风险并确保数据完整性。
在 MySQL 5.5 及更早版本中,UPDATE 操作对具有活动索引的表进行更新会遇到块。这可能会严重影响性能并导致中断。
要避免这些阻塞,请考虑以下方法:
1.循环主服务器:
2. Percona 的 pt-online-schema-change:
3. RDS 只读副本升级:
如果使用 Amazon 的 RDS,您可以创建只读副本并对其执行索引更新。完成后,将副本提升为新的主节点。此方法通过自动执行故障转移和数据迁移来简化流程。
注意:此方法需要重新启动应用程序才能重新连接到更新的数据库实例。
以上是如何在不中断操作的情况下对巨大的 MySQL 生产表建立索引?的详细内容。更多信息请关注PHP中文网其他相关文章!