sql优化,跟索引无关的部分

30 阅读1分钟

🚀 SQL 最佳实践:我的个人总结

在刷 LeetCode SQL 题和编写实际查询时,我总结出一些能持续提升代码可读性和性能的模式:

1️⃣ 子查询/排除查询:
NOT EXISTS 通常比 NOT IN 更安全可靠(尤其在涉及 NULL 值时),有时甚至比 JOIN 更高效。
💡 经验法则:NOT EXISTS ≥ JOIN >> NOT IN

2️⃣ 条件逻辑:
优先使用 CASE WHEN 而非 MySQL 特有的 IF()——CASE 是标准 SQL,具有跨数据库兼容性,且能让查询更清晰。

3️⃣ 分析与排名:
在计算排名、Top-N 或累计值时,窗口函数(ROW_NUMBER()、RANK()、SUM() OVER ...)通常优于 JOIN + GROUP BY。

✨ 总结:现代 SQL 更推荐使用 CASE、NOT EXISTS 和窗口函数——这不仅出于性能考量,更为了代码的可维护性与可读性。