关系型数据库SQL优化的思路与技巧

随着数据量的增长,SQL优化对于系统的响应速度至关重要。主要策略包括使用索引避免全表扫描,如合理使用LIKE,避免OR,优化IN操作,避免在排序和条件中使用非索引列及函数,以及利用临时表存放中间结果来提升效率。
摘要由CSDN通过智能技术生成

SQL优化
对于关系型数据库而言。随着数据量的增加,SQL语句的优劣对系统的响应速度的影响越来越明显,SQL优化也成为每一个数据相关工作人员的必备技能。以下是我工作,学习的总结与大家分享,如发现不合理或错误的地方欢迎大家及时指出,共同交流、共同成长。
SQL优化的可以从以下几个大方面去考虑:1.使用索引,避免全表扫描。2.使用临时表存放中间结果。3.查询哪些字段就select哪些字段,尽量不使用select *。

1、使用索引,避免全表扫描
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。(来自百度文库)
如果不使用索引系统会将将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作,因此在SQL语句的执行过程中让优化器使用索引,避免全表扫描变得尤为重要。那么优化器会根据何种原则来删除索引呢,下面是几个常见的场景:

LIKE的使用
通配符出现在首位,无法使用索引,反之可以。

-- 无法使用索引
SELECT .. FROM .. WHERE NAME LIKE '%T%' ;
-- 可以使用索引
SELECT .. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值