全部文章

手写 SQL 的一些思考

2026年9月11日1 分钟阅读1 次浏览

慢查询从哪里来

多数性能问题不是"SQL 太慢",而是索引缺失查询了不需要的数据

-- 只取需要的列,避免 SELECT *
SELECT id, title_zh, published_at
FROM post
WHERE published = 1
ORDER BY published_at DESC
LIMIT 10;

加索引的判断标准

  1. 出现在 WHEREJOINORDER BY 中的高频列
  2. 区分度足够高(例如状态列区分度低,不适合单独建索引)
  3. EXPLAIN 验证,而不是凭感觉

小结

先测量,再优化。没有度量数据的优化,通常只是自我安慰。