每天晚上,我都会转储我的PROD环境(MySQL8.0.23),以便在我的测试环境中导入它。在这两个系统上,硬件和mysql配置是相同的。
我注意到一些查询(在转储之后执行,当两个数据库仍然对齐时)在这两个系统上以不同的方式运行,具有不同的执行计划,当然还有不同的性能。
我的猜测是,测试环境表现得更好,因为每个表都是从头创建的,因此表和索引的统计数据更准确,而PROD在白天加载了大量的插入、更新和删除。
有什么办法能让PROD表现得和以前一样吗?
我试着在每个表上运行、优化和分析(其中大多数是InnoDB),但执行计划仍然不同
谢谢
发布于 2022-10-14 00:40:36
EXPLAIN作出估计;它通常是不一致的。不要担心。OPTIMIZE本质上根本不需要InnoDB;不要浪费时间在it.ANALYZE上,有时会说服EXPLAIN提供不同的查询计划。这证明不多。给我们举一个明显不同的例子。当给出一个具体的例子时,我们更有可能发现一些东西。提供
query
https://stackoverflow.com/questions/74054280
复制相似问题