问题: select语句和update语句的耗时比较
描述:
比如说,目标都是某一条记录,对其进行查询或更新操作,在用时上有什么不同呢
解决方案1:
这种比较没什么意义。需要注意的一点是,select 涉及的是共享锁, 在nolock提示下可以保证不死锁。update涉及的是更新锁和排他锁,没有锁
提示可以用,在一定条件下会等待很长时间,甚至死锁。
解决方案2:
可以自己测试一下,根据主键查询的话,会从数据库里找到匹配该主键的一条数据,update的话,那就相当于先查询,查询完之后再update,这样的话update比select耗时长一些。
解决方案3:
代码都是切合实际的,换一种理解的角度来说,比如你是数据库我是java程序,当我问你你多大了,你会立马回复我你多大了,当我说其实你的年龄错误了,应该是多少多少的时候,你会把你认为的那个年龄去修改一下,在存储一下,这个过程比第一个过程要长,所有耗时也会多
解决方案4:
这个问题要看对查询的表是否带索引,查询条件是否用到索引字段。我们分类讨论
1,没有索引,查询就一个select,而update是把数据select into 到一个deleted的临时表里。所以从执行上来说,select要快一些。
2,如果涉及到索引,那么update本身索引就对dml的处理会有比较多的日志产生,并且产生索引字段是否更新等,这个从根本上来说就导致更加慢。
你的这个问题,其实并没有什么意义的,因为这不属于同一个范畴里。