数据库SQL语句书写注意事项

本文详细介绍了优化SQL语句的十二个关键点,包括从多个表中选择记录的顺序、WHERE子句的连接顺序、避免使用通配符、删除重复记录、使用COMMIT、用WHERE替换HAVING、使用表别名、用EXISTS替换IN、利用索引、避免在索引列上使用特定操作等,旨在提升数据库查询效率。
摘要由CSDN通过智能技术生成

1. 从多个表中选择记录(表名顺序)

执行顺序为从右往左,即表记录数少的放到右边,即最为基础表。如果有三个以上的表做连接查询,我们将交叉表作为基础表(即被其他表应用的表,即关系表)

2. WHERE子句中的连接顺序

ORACLE按照自左向右的顺序执行,即那些可以过滤掉最大数量记录的条件必须写在WHERE子句的最右边,即末尾。
对于SQL Server有两种说法,第一种:不用考虑顺序,SQLServer会自动执行过滤数据较多的条件;第二种:从左向右的执行顺序。

3.SELECT子句中一定避免使用 ‘ * ‘

注意一定别是用* ,巨耗时。

4. 删除重复记录

避免表中出现重复记录。
Oracle中最高效的删除重复记录方法的例子:

DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);

5 尽量多使用COMMIT

只要有可能,在程序中尽量多使用COMMIT, 以便及时释放资源,提高性能。 COMMIT所释放的资源:
第一, 回滚段上用于恢复数据的信息.
第二, 被程序语句获得的锁。
第三, redo log buffer 中的空间
第四, ORACLE为治理上述3种资源中的内部花费

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值