MySQL 中带有子查询的缓慢“IN”查询
当使用子查询时,使用“IN”运算符的 MySQL 查询可能会表现出显着的性能下降检索“IN”子句的值很复杂。在这种情况下,用显式值替换子查询结果会显着缩短执行时间。
要了解此行为的原因,需要注意的是,每次评估“IN”查询时,MySQL 都会执行子查询。在提供的示例中,em_link_data 表中有 700 万行,每行都单独处理,从而导致大量的子查询计算。
另一方面,用显式值替换子查询则无需重复执行子查询,从而显着提高性能。通过使用 JOIN 代替“IN”子查询,可以实现类似的性能优势,从而进一步优化执行过程。
不幸的是,由于软件限制,用户无法修改查询。在这种情况下,值得研究替代方法来提高性能,例如通过创建适当的索引来优化涉及的表或探索减少查询处理的行数的方法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3