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语句
如有疑问或不同见解,欢迎留言共同交流,博主看到后会在第一时间回复哦…