数据库的SQL优化

  • 2020 年 4 月 10 日
  • 筆記

数据库的优化现在已经是一个热门的话题。所以今天来讲讲数据库,了解一下数据库在优化方面的知识。

在设计以及操作数据库其实要考虑到东西很多很多,速度,存储空间等等性能的问题。对一个数据库来说,只能做到更优,不可能最优,并且由于实际需求不同,优化方案还是有所差异。特别在SQL语句上,SQL语句的编写对数据库来说是有很大影响的。本篇文章将介绍一些在我们开发中遇到的常见情况,来学习通过SQL语句对提升数据库性能的方法。

SQL语句:

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

最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库。

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

3.in 和 not in 要慎用,否则会导致全表扫描。能用 between 就不要用 in 了,

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

4.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使 用索引而进行全表扫描。

5.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索 引而进行全表扫描。

6.Update 语句,如果只更改1、2个字段,不要Update全部字段,否则频繁调用会引起明显的性能消耗,同时带来大量日志。

7.尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储 空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。

8.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

9.SELECT子句中避免使用 ‘ * ‘,ORACLE在解析的过程中, 会将’*’ 依次转换 成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间。

对于数据库上的优化方法是有很多种的,暂时先介绍这些,希望能提升小编以及大伙们在数据库上的知识,共同进步。

预祝大家新春快乐,学有所成。