SQL语句查询优化

本文分享了SQL查询优化的实用技巧,包括SQL语句写法、避免复杂查询、使用临时表、参数化查询、事务管理、索引使用、LIKE语句优化及JOIN表策略等,帮助提升数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学SQL感觉蛮有意思的,话不多说,来点干货。关于数据语句的优化。我觉得大家想到的第一点是表的索引。查询慢了看看表索引。

在数据库查询语句数据库会选择最优的查询计划 叫做执行计划。 它是一个不固定的,是根据查询的表和条件进行改变。

1.sql 语句的写法。

SELECT * FROM DATA_OP
select * from data_op

这二个语句对于我们来说是一样的,但数据库不会这么认为。

 

2.sql语句不要写的太复杂,当然复杂的sql语句执行肯定会慢的。

3.sql中的临时表,暂缓中间结果集。减少的查询扫描主表的开销。

4.查询语句用于条件对于不同参数,用变量来代替,这样减少。

select * from data_op where id=@id

@id 为参数可以重复利用 sql 的执行计划。下面这样 就不是优化了

select * from data_op where sex=@sex
@sex 变量,对于中国来说,大部分是 汉,少数为其他。这样如果一开始传入的变量是汉。查询分析器是时全表扫描。如果往后的变量不是汉,那么 会导致查询缓慢。 
对于这样少数的字段,用索引查询快

 5. 这里在优化语句中默认都是有一个事务。理解 事务就是控制 执行的内容,要么都成功,要么都失败

begin transaction
update data_op set Password =3 where  id=3
waitfor  delay '0:0:5'
update data_op set Password =4 where  id=4
commit transaction
 

所以 在一个事务中 SQL 语句存在大量数据,会导致 表的阻塞,从而使性能降低

6.sql语句查询要加上nolock ,针对sql service  ,如果oralce ,怎不会出现死锁。因为oracle的结构更为合理,有undo表空间保存“数据前影”。sql 中临时表也相当于“数据前影”。

select * from    data_op(nolock)

加的这个nolock  有些缺点,查询的数据不准确,但是这样可以有效的防止,查询时候不出错,导致系统长时间在查询数据。

7 新建索引的问题 关于这个问题 我后面会了解。

8.语句查询条件 like  用到这个 语法 表示 表要进行全表扫描。增大数据库开销

9.在jion 表时,需要注意一下链接的表的 结果集,和字段的索引。 

 

加油! --小伙子。                                                                                                                                                                                                                                                   

以上内容,均是看网上和自己总结的,如有侵犯版权问题。请告知。谢谢

转载于:https://www.cnblogs.com/mineworld/p/9786041.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值