您的位置:首页 > 数据库

SQL语句性能优化

2018-03-20 16:29 218 查看
1.保证不查询多余的列与行。尽量避免select * 的存在,使用具体的列代替*,避免多余的列
使用where限定具体要查询的数据,避免多余的行
使用top,distinct关键字减少多余重复的行
2.慎用distinct关键字。distinct在查询一个字段或者很少字段的情况下使用,会避免重复数据的出现,给查询带来优化效果。但是查询字段很多的情况下使用,则会大大降低查询效率。3.慎用union关键字。满足union的语句必须满足:1.列数相同。 2.对应列数的数据类型要保持兼容。 采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。4.判断表中是否存在数据。select count(*) from product select top(1) id from product 很显然下面的一行语句完胜5.连接查询、关联查询的优化。首先要弄明白想要的数据是什么样子的,然后再做出决定使用哪一种连接,这很重要。 各种连接的取值大小为:内连接结果集大小取决于左右表满足条件的数量
左连接取决于左表大小,右连接取决于右表的大小。
完全连接和交叉连接取决于左右两个表的数据总数量
6.操作符的使用。 (1)IN 操作符与 NOT IN 操作符用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,导致全表扫描。因此,在业务密集的SQL当中尽量不采用IN 和 NOT IN操作符,用EXISTS 和 NOT EXISTS 方案代替。 (2)IS NULL 或IS NOT NULL操作(判断字段是否为空) 避免在索引列上使用IS NULL和IS NOT NULL

如有问题,欢迎指出;如需转载,请标明出处,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SQL优化