gpt4 book ai didi

sql - 在事件的 myISAM 表上添加索引的最简单方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:11 25 4
gpt4 key购买 nike

我有一个在 mySQL 上运行的 myISAM 表,通过做一些测试,我们发现我们可以通过添加某个复合索引来极大地加快查询速度。到目前为止,一切都很好。但是,我并不是真正了解在生产环境中添加此索引而无需长时间锁定表的最佳方法(它有 27GB 的数据,所以不是很多,但确实需要一段时间)。

你有什么建议吗?如果这是一个更复杂的设置,我们当然会在另一台机器上拥有所有数据的实时副本,并且我们可以安全地切换。不幸的是,我们还没有做到这一点,我想尽快加快这个查询的速度(这让客户很头疼)。有没有一些简单的方法来复制数据然后进行换出技巧?我还缺少其他一些技巧吗?

更新:阅读 SQL Server 中的“在线索引操作”让我非常嫉妒 http://msdn.microsoft.com/en-us/library/ms191261.aspx :)

谢谢!

最佳答案

您可以使用复制将停机时间减少几分钟,而不是在该表上创建索引可能需要几个小时。

要设置从站,请参阅 http://dev.mysql.com/doc/refman/5.0/en/replication-howto-existingdata.html

我可以提出的有助于加快该过程的建议是在步骤 2 中遵循“使用原始数据文件创建数据快照”方法。但不是通过线路复制到从站,而是复制到主站上的不同位置。并在复制完成后立即恢复主服务器,并且您已经对配置文件进行了必要的更改(设置服务器 ID 并启用二进制日志记录)。这会将您的停机时间减少到一两分钟。服务器恢复后,您可以将复制的文件复制到从箱。

一旦你启动并运行了slave,你就有了verified everything is replicating properly , 你可以 pause the slave .在药膏上创建索引。索引创建完成后,恢复从站。这将使奴隶 catch 主人。在 master 上,使用 FLUSH TABLE WITH READ LOCK。检查从属状态以确保主从上的日志位置匹配。如果他们这样做,请关闭从服务器并将该表的文件复制回主服务器。

关于sql - 在事件的 myISAM 表上添加索引的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com