数据库优化知识

第七章 SQL优化

  • 数值的对比要比字符串快, 以后建表时, 能用数值代替的, 尽量不要使用字符串
  • 数值比较节省空间
  • 给列做索引 , 索引可以大大的加强查询速度
  • 联合索引 , 给 A B两列做联合索引, where A = ?  a =? and  b = ?
  • 索引会加重数据库负担

1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

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

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

4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描

  1. (in 可以使用索引)

6.应尽量避免在 where 子句中对字段进行表达式操作

7.应尽量避免在where子句中对字段进行函数操作

8.很多时候用 exists 代替 in 是一个好的选择

  • 当从表中的数据很少的时候,使用 in , 如果从表中的数据比较多, 那么使用exists

9.尽量使用数字型字段

10.尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,可以节省存储空间

11.任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

12.尽量使用表变量来代替临时表。如果表变量包含大量数据,请注意索引非常有限(只有主键索引)。

13.避免频繁创建和删除临时表,以减少系统表资源的消耗。

14.在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;如果数据量不大,为了缓和系统表的资源,应先create table,然后insert。

总结 :

​ 能使用索引(排序,二分查找),效率高

​ 大量的临时表,大数据的临时表加重内存的负担, 不如直接建议实体表

​ 尽量不要使用 * ,以便于养成好的习惯

​ 尽量使用数值型的字段

总结

你可能感兴趣的:(数据库优化知识)