SQL 的性能优化,说难也难,说简单也简单。你只要避开那些常见的坑,性能提升真的挺的。
全表扫描的事儿,不用我多说,都知道慢得要命。你只要在WHERE
和ORDER BY
的字段上建好索引,响应也快,资源也省——像name like 'abc%'
这样的写法就挺不错的,用了索引,还挺高效。
另外,写 SQL 的时候别总对字段搞什么!=
、OR
、IS NULL
,这些操作基本都会把索引干掉,变成全表扫,CPU 嗡嗡响。你可以试试用UNION ALL
替代OR
,或者用EXISTS
来替代IN
,大表查小表那种场景,用了之后查询速度提升还蛮的。
还有一点容易被忽略:索引别乱加,一个表顶多六七个就够了。太多了,INSERT
、UPDATE
操作慢得你都怀疑人生。还有就是字段类型,能用数字的别用字符,数值比较快多了,存储也省。
,这份 SQL 优化建议文档不长不啰嗦,条条都是踩坑经验总结,适合平时写查询语句多的你参考看看。如果你最近在排查慢查询问题,建议你先过一遍这里的优化点,说不定就能发现瓶颈点。