最近整理了公司几个有特点的sql优化,给大家分享下:
1、用exists代替in:
注释的部分是优化前的,下面的where exists是优化后的;
仅仅是用了exists优化,原来执行3分12秒,优化后1.1秒,可以说是飞跃。
2、尽可能用where代替having:
一个非常简单的sql,但是因为数据库数量大,竟然执行了720S,
数据量越大,越能体现出where比having执行效率块,having是先排序再去进行数据分组,而where先分组,再去排序,是数据库节省了很大的负担。
3、避免在where子句中进行函数或者表达式操作:
4、合理使用exists、no exists子句
这两条sql查询结果一样,但是效率明显下面的高于上面的,因为后者不会产生大量的表扫描或者是索引扫描。
对于数据库优化是我们长期的工作,sql执行的效率直接影响客户的满意度,还有一些比如用Union all 代替union,数据库碎片整理、如何充分利用连接条件、怎样有效建立索引、使用like模糊查询触发索引等等。
领取专属 10元无门槛券
私享最新 技术干货