Advanced
高并发SQL查询优化
针对特定数据库场景(如PostgreSQL),优化涉及多表连接和子查询的低效SQL语句。
📝 Treść promptu
我有一个包含千万级数据的PostgreSQL数据库,涉及三个表:users(用户)、orders(订单)和order_items(订单详情)。以下是一个用于获取‘上个月购买过特定类别商品的高活跃用户’的SQL查询,目前执行耗时超过5秒。
[请在此处插入一个包含多个子查询、未优化JOIN和错误索引使用的SQL示例]
请执行以下任务:
1. 分析该查询的执行计划,找出性能瓶颈(如全表扫描、Hash Join vs Nested Loop的选择不当等)。
2. 提出具体的索引优化建议。
3. 重写SQL查询,使用CTE(公用表表达式)或窗口函数来提高可读性和性能。
4. 解释你的优化思路,并对比理论上的I/O开销变化。