我们过去曾问过类似的问题,基本上我们有一个非常大的 Magento 商店,其中有 500000 种产品,目前每天晚上重新索引一次。
我们希望大大加快这一进程,目前大约需要 4-5 个小时。解决方案是,我们在服务器集群上执行类似操作,然后在无需为客户服务的机器上复制数据库更改。
但其机制是什么?我们如何将这些更改从服务器集群复制到实时站点?
有人能给我指出正确的方向吗?
答案1
主要问题是为什么您每晚都要重新索引,我猜是产品导入/同步。
首先,对于如此规模的目录来说,4-5 小时的时间太长了。刷新一个商店的所有索引(每 1 个商店视图包含 25 万种产品)大约需要 25 分钟。因此,要么是您的商店视图数量很少,要么是服务器配置存在重大问题。
您的建议根本不切实际,通过同时运行两个实时数据库,然后替换另一个数据库,您将如何解决库存差异等问题。
在此阶段,无需您提供任何详细信息,我将首先为 Magento 正确设置您的服务器。之后,说明为什么需要重新索引所有内容,可能有比连续数小时锁定多个表更优雅的方法。禁用 FCP 和 FCC 将消除完成这些索引的需要,并且测试将显示是否存在任何性能影响;我们发现它们对某些目录可能有害。您还可以安装 SOLR 来处理 catalog_fulltext_search 索引,这减轻了 MySQL 的负担,重新索引速度更快,并使目录的搜索和分层导航速度大大加快。
正确的方向是咨询专业人士,使用您现有的硬件提出适合您需求的适当解决方案。