MySQL 中带有子查询的缓慢“IN”查询
使用“IN”运算符的 MySQL 查询在使用子查询时可能会表现出显着的性能下降检索“IN”子句的值很复杂。在这种情况下,用显式值替换子查询结果会显着缩短执行时间。
要理解此行为的原因,需要注意的是,每次评估“IN”查询时,MySQL 都会执行子查询。在提供的示例中,em_link_data 表中有 700 万行,每行都单独处理,从而导致大量的子查询计算。
另一方面,用显式值替换子查询就不需要重复执行子查询,从而显着提高性能。通过使用 JOIN 代替“IN”子查询,可以实现类似的性能优势,从而进一步优化执行过程。
不幸的是,由于软件限制,用户无法修改查询。在这种情况下,值得研究替代方法来提高性能,例如通过创建适当的索引来优化涉及的表或探索减少查询处理的行数的方法。
以上是为什么 MySQL 中带有子查询的“IN”查询很慢,如何提高性能?的详细内容。更多信息请关注PHP中文网其他相关文章!