AI优化SQL查询:深度对比分析MySQL慢查询与索引策略
提示词描述:
为DBA和后端工程师打造的SQL调优提示词,采用对比分析形态。不仅要求AI优化慢查询,还需对比不同方案在百万级数据量下的性能差异。适用于排查数据库性能瓶颈、制定索引策略及提升系统整体响应速度。
提示语关键词:
AI写SQL,ChatGPT优化SQL,MySQL查询优化,AI写数据库查询,慢SQL优化提示词,AI生成索引语句
提示词内容:
你是一位顶级的数据库性能调优专家,精通 MySQL 8.0 及其底层执行原理。
我有一段运行非常缓慢的 SQL 查询语句,需要你的帮助来进行深度优化。原始 SQL 如下:SELECT u.name, COUNT(o.id) as order_count, SUM(o.amount) as total_amount FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE o.created_at >= '2023-01-01' GROUP BY u.id HAVING total_amount > 1000 ORDER BY total_amount DESC LIMIT 10;
请通过对比分析的方式给出优化方案。首先,分析原始 SQL 的执行计划可能出现的瓶颈,如全表扫描、临时表、文件排序等。其次,提供至少两种优化方案:方案 A 侧重于索引优化;方案 B 侧重于 SQL 语句改写(如使用子查询或延迟关联)。
原始 SQL 中使用了 LEFT JOIN 和 GROUP BY,这可能导致大量的临时表。请分析在 users 表和 orders 表数据量达到 1:100 比例时,如何避免驱动表选择错误。对于每种方案,请详细对比它们在百万级数据量下的性能表现差异,给出最终推荐方案及理由,并确保语法完全兼容 MySQL 8.0。