
优化 mysql 查询以提升性能
针对给定的查询,需要进行优化以缩短查询时间,目前查询需要约 10 分钟。
问题分析
执行解释计划显示,a 表未走索引,b 表走的是 id 索引。
优化思路
反向查询:
将查询方式反转。首先从 b 表中查询满足条件的行,然后使用这些行中的 id 值作为过滤器查询 a 表。
select * from a where a.old_person_id in (
select id from b where b.city like '京%' and b.shequ like '山%'
)分组汇总:
如果反向查询有效,则可以再次 join b 表,并根据需要分组和汇总结果。
SELECT
aa.ID_CARD,
aa.DEAL_AMOUNT,
b.STREET
FROM
(
SELECT * FROM a WHERE a.OLD_PERSON_ID IN (
SELECT id FROM b WHERE b.CITY LIKE '京%' AND b.SHEQU LIKE '山%'
)
) aa
INNER JOIN b ON aa.OLD_PERSON_ID = b.ID
GROUP BY
b.STREET通过遵循这些优化步骤,应该可以显着提升查询性能,缩短查询时间。
以上就是如何优化 MySQL 查询以将 10 分钟的查询时间缩短?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号