Adobe Commerce: MySQL查询卡在“等待认证”状态导致性能问题

MySQL中的 等待认证 状态是支持Adobe Commerce的基于Galera的群集中使用的两阶段提交进程的一部分。 此机制可确保提交事务时数据库中不会出现冲突。 虽然短暂出现此状态是正常的,但持续时间较长表示性能瓶颈。 这些延迟可能是由长时间运行的查询、高度争用或基础架构问题造成的。

要解决此问题,请分析查询速度较慢,管理缓存刷新,实施SWAT建议,并优化数据库统计信息。

描述 description

环境

  • 产品: Adobe Commerce
  • 数据库群集类型: 基于Galera的MySQL

问题/症状

由于大量MySQL查询卡在 等待认证 状态而导致性能下降。 症状包括:

  • 购物车中的产品可见性延迟。
  • 查询执行缓慢。
  • 大型慢速查询日志文件。
  • 缓存刷新与高峰使用时间一致。

解决方法 resolution

要解决此问题:

  1. 查看MySQL慢查询日志,以识别长时间运行的查询。 如果日志文件的大小增加到数百MB,则表示存在严重问题。 优化任何有问题的查询,以减少瓶颈并提高整体性能。 有关更多详细信息,请参阅Commerce KB文档中的检查慢查询和进程MySQL

  2. 在非高峰时段(如深夜或清晨)安排缓存刷新。 这有助于避免在高需求期间增加系统负载,并防止性能下降。 有关更多详细信息,请参阅《Commerce配置指南》中的管理缓存文档。

  3. 实施SWAT报告中的建议。 这可以包括向表添加缺少的主键和最大限度地减少触发器的使用,这两种方法都可以减少争用并提高认证速度。 在Commerce Tools文档中了解有关全站点分析工具的更多信息。

  4. 注意 此操作可能会暂时锁定表。 在工作时间以外运行,并确保禁用cron作业以避免中断。

    使用表分析运行mysqlcheck以确保数据库统计信息是最新的:

    code language-none
    mysqlcheck -h<host_name> -u<user_name> -p -a <db_name>
    
  5. 确保表统计信息为最新。 过时的统计信息可能导致查询执行计划效率低下,进而降低整个群集的性能。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f