更新时间:2022-09-05 来源:黑马程序员 浏览量:
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 的计划