1、尽可能建立索引,包括条件列,连接列,外键列等。
2、尽可能让where中的列顺序与复合索引的列顺序一致。
3、尽可能不要select *,而只列出自己需要的字段列表。
4、尽可能减少子查询的层数。
5、尽可能在子查询中进行数据筛选 。
6、查询条件减少使用函数,避免全表扫描
7、减少不必要的表连接有些数据操作的业务逻辑可以放到应用层进行实现
8、可以使用with as
9、使用“临时表”暂存中间结果
11、不要把SQL语句写得太复杂
12、不能循环执行查询
13、用 exists 代替 in
14、表关联关系不要太纠结
15、查询多用索引列取查,用charindex或者like[0-9]来代替%%
16、inner关联的表可以先查出来,再去关联leftjoin的表
17、可以进行表关联数据拆分,即先查出核心数据,再通过核心数据查其他数据,这样会快得多
18、表关联时取别名,也能提高效率
19、使用视图,给视图建立索引进行优化
20、使用数据仓库的形式,建立单独的表存储数据,根据时间戳定期更新数据。将多表关联的数据集中抽取存入一张表中,查询时单表查询,提高了查询效率。