一条Update语句带了where条件没有命中索引,加的是什么锁
时间: 2023-06-12 20:01:57 浏览: 99
?
如果一条Update语句没有命中索引,会加上表锁。具体来说,会加上表级排他锁(Table-level exclusive lock)或表级共享锁(Table-level shared lock)。其中,如果语句中含有 “for update” 或 “for share” 语句,则会加上表级排他锁或表级共享锁。如果语句中不含有这些语句,则会加上自动提交事务时的隐式锁,也就是表级共享锁。
相关问题
update sql语句没有where条件会怎么样
如果 update sql 语句没有 where 条件,那么所有的行都会被更新,这可能会导致数据的丢失或者不正确的更新。因此,在编写 update sql 语句时,一定要注意添加 where 条件来限制更新的范围。
一条update语句 批量修改怎么不锁全表
有几种方法可以避免使用一条update语句批量修改时锁全表:
1. 使用索引:确保表中的每个基于索引的列都包含唯一值,这样可以确保使用索引修改每个行的开销最小,尽可能避免锁定全表。
2. 分页更新:使用分页更新的技术,每次更新一小批数据,然后等待一小段时间再更新下一批数据。这样可以确保在操作期间不会锁定全表,因为只修改一小部分数据。
3. 在事务中更新:将所有更新操作包装在事务中,并使用同一连接开启事务。这样可以确保在操作期间不会锁定全表。
4. 使用WHERE子句:使用WHERE子句限制更新的行数,只更新符合条件的行。这样可以确保只更新需要更新的行,而不是更新整个表。
5. 使用NOLOCK提示:使用NOLOCK提示来防止锁定整个表,但是这种方法可能造成不可重复读或脏读问题。因此,建议在高并发或需要数据的完整性和一致性时不要使用此方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)