gpt4 book ai didi

mysql - Zen Cart 对数据库的写入过多。可能的解决方案?

转载 作者:行者123 更新时间:2023-11-29 07:09:01 25 4
gpt4 key购买 nike

我正在研究使用 Zen Cart 的东西。此时从 Zen Cart 更改站点不是可选的。该网站大部分时间都运行良好,但每隔一周左右,该网站的性能就会受到影响。与服务器提供商的讨论表明,这几乎可以肯定是由于对数据库的写入过多导致 i/o 使用效率低下造成的。数据库服务器不同于 Web 服务器,但如果数据库服务器没有足够的可用 I/O,站点就会受到影响(因为站点上几乎每个页面都会调用数据库)。我正在寻找解决此问题的解决方案,相信我已经找到了一些解决方案,但希望得到一些反馈。

A) 确定我是否可以修改 zen cart 以使用 INSERT DELAY 而不是 INSERT,这样页面就不会在特定查询时挂起。然而,Zen Cart 是一个庞大的系统,像这样进行大规模更改可能会产生负面影响(例如,DELAY 语句不会在已使用 LOCKED TABLES 锁定的表上执行,或者后续页面无法正确反射(reflect)用户在之前的页面上,因为他们可以在没有完成之前的查询的情况下加载)。

B) 部署混合托管解决方案,其中网站在云端运行,但数据库在具有多个 SAS 驱动器的服务器上运行,以提高写入速度,从而更快地释放 I/O 以供后续查询使用。我想避免这种情况,因为它会显着增加成本。

有人在使用 Zen-Cart 时遇到过这个问题吗?您对这些修复有何看法?您使用了哪些修复程序?

更新:我最终使用了 Data Diggers 的 Query Cache,这对我帮助很大。我还发现 zencart 对 getimagesize() 的使用占据了它的大部分加载时间,因此我正在创建一种从缓存中获取这些值的方法。大多数 mysql 查询延迟是由过多的读取操作引起的,而不是写入操作。自从我实现这些更改后,情况有了很大改善。我会将 AJ 的回答标记为正确,因为他确实回答了我最初的问题。

最佳答案

像 INSERT DELAY 而不是 INSERT 那样进行广泛的更改可能是正确的解决方案,但并非您的所有查询都会导致问题。只有少数人(甚至可能只有一个人)对性能问题负责。

您应该尝试找出导致性能问题的特定 查询。与您的主机合作以启用 slow query logging让 MySQL 告诉您效率低下的地方。如果没有一个运行缓慢,并且这只是一个纯粹的并发问题,IFF 你已经与 Zen Cart 结婚,那么你需要考虑加强你的基础设施。我喜欢您关于拥有独立的 Web 和数据库服务器的想法。不过不要太过火 - 如果它们现在都在一台服务器上运行,只需获取第二台服务器并移动您的数据库即可。

进行增量更改并监控结果。一次更改太多的东西将很难确定您所看到的性能提升(希望不是损失)的原因。

关于mysql - Zen Cart 对数据库的写入过多。可能的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689399/

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