select语句和update语句的耗时比较

 问题: select语句和update语句的耗时比较

描述:

比如说,目标都是某一条记录,对其进行查询或更新操作,在用时上有什么不同呢

 

解决方案1:

这种比较没什么意义。需要注意的一点是,select 涉及的是共享锁, 在nolock提示下可以保证不死锁。update涉及的是更新锁和排他锁,没有锁

提示可以用,在一定条件下会等待很长时间,甚至死锁。

 

解决方案2:

可以自己测试一下,根据主键查询的话,会从数据库里找到匹配该主键的一条数据,update的话,那就相当于先查询,查询完之后再update,这样的话update比select耗时长一些。

 

解决方案3:

代码都是切合实际的,换一种理解的角度来说,比如你是数据库我是java程序,当我问你你多大了,你会立马回复我你多大了,当我说其实你的年龄错误了,应该是多少多少的时候,你会把你认为的那个年龄去修改一下,在存储一下,这个过程比第一个过程要长,所有耗时也会多

 

解决方案4:

这个问题要看对查询的表是否带索引,查询条件是否用到索引字段。我们分类讨论

1,没有索引,查询就一个select,而update是把数据select into 到一个deleted的临时表里。所以从执行上来说,select要快一些。

2,如果涉及到索引,那么update本身索引就对dml的处理会有比较多的日志产生,并且产生索引字段是否更新等,这个从根本上来说就导致更加慢。

你的这个问题,其实并没有什么意义的,因为这不属于同一个范畴里。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shaun-sheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值