搜索
写经验 领红包
 > 自然

sql语句优化的几个原则是什么(sql语句优化的几个原则包括)

导语:SQL语句优化的几个原则

背景:

DBA或业务开发人员在编写SQL语句的时候,通常关注的结果集的正确性,而忽略了SQL语句的执行效率。导致了SQL语句就成为了一个相对困难的事情,我这里介绍几个SQL语句优化的规则,未尽之处会在后续补充。

SQL语句优化原则:

1、数据类型的严谨性

比如char和varchar,varchar和数值类型,定长和变长数值都应该有合理的数据类型。

我见过一个比较夸张的业务系统,所有的数值类型无论是整型,还是浮点型全部在表结构中定义为varchar,在页面上显示的时候问题不大,但是效率一定不是最好的。

2、需要避免隐式的数据类型转换

比如定义的类型是varchar使用函数显示转换转换做四则运算;比如where col1=col2 两侧的col1和col2的数据类型定义的不一样,也会发生隐式的数据类型转换的问题

3、数据排序

在OLTP的数据库中都会有一个排序内存,有的数据库产品是为每个会话分配一个排序内存,有的所有的会话共用一个排序内存。但是排序内存都不大,需要检查数据在order by或group by的时候是否发生磁盘排序,如果发生了,需要尽量避免

4、优秀合理的索引创建

索引的创建原则是:

1、考虑where后的字段

2、考虑where后字段的区分度

3、where 中=两侧的字段创建索引

4、where后in 前面的字段创建索引

5、group by | order by 后的字段创建索引

6、索引优先考虑使用定长的数据类型

5、查看SQL语句的执行计划,每个数据库是有差异的

6、查看多表的连接方法

需要考虑使用nestloop还是hash join还是其他连接方式,这个原则相对复杂,需要理解各个连接方法的优劣和使用场景。

7、如果执行计划不准确需要考虑表上统计信息是否准确

8、如果数据库没有选择合适的执行计划,可以考虑hint来强制选择执行路径

本文内容由小芦整理编辑!