SQL性能的优化规范

1、查询SQL尽量不要使用select *,而是select具体字段,尽可能避免回表。

2、如果知道查询结果只有一条或者只要一条记录,建议用limit 1

3、应尽量避免在where子句中使用or来连接条件,因为会放弃索引

4、优化limit分页,当偏移量特别大时,跳过偏移量,查询效率大大提高。

5、优化你的like语句,把%放前面是不走索引的

6、使用where条件限定要查询某个记录的数据,避免返回多余的行

7、尽量避免在索引列上使用mysql的内置函数

8、应尽量避免在where子句中对字段进行表达式操作,这将导致系统放弃使用索引而进行全表扫

9、Inner join 、left join、right join,优先使用Inner join,如果是left join,左边表结果尽量小

10、应尽量避免在where子句中使用!=或<>操作符,否则将放弃索引进行全表扫描。

11、使用联合索引时,注意索引列的顺序,一般遵循最左匹配原则。

12、对查询进行优化,应考虑在where及order by涉及的列上建立索引,尽量避免全表扫描。

13、如果插入数据过多,考虑批量插入。

14、在适当的时候,使用覆盖索引。

15、慎用distinct关键字,字段很多的时候使用,会大大降低查询效率。

16、删除冗余和重复索引

17、如果数据量较大,优化你的修改/删除语句。

18、where子句中考虑使用默认值代替null。

19、不要有超过5个以上的表连接

20、exist&in的合理利用,选择最外层循环小的

21、尽量用union all替换 union

22、索引不宜太多,一般5个以内。

23、尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型

24、索引不适合建在有大量重复数据的字段上,如性别这类型数据库字

25、尽量避免向客户端返回过多数据量。

26、当在SQL语句中连接多个表时,请使用表的别名,并把别名前缀于每一列上,这样语义更加清晰。

27、尽可能使用varchar/nvarchar 代替 char/nchar。

28、为了提高group by 语句的效率,可以在执行到该语句前,把不需要的记录过滤掉。

29、如果字段类型是字符串,where时一定用引号括起来,否则索引失效

30、多多使用explain 分析你的SQL语句

如有疑问或不同见解,欢迎留言共同交流,博主看到后会在第一时间回复哦…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Double@加贝

非常感谢家人们的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值