1
yangqi 2018-07-24 22:52:41 +08:00
需要全表扫描当然是锁整个表了,怎么可能让你插入。
|
2
zjp 2018-07-24 22:53:54 +08:00 via Android
前面都说了全表扫描,那用的就不是行级锁啊。和末尾无关…不要把数据库表当成一张二维表。
|
3
abcbuzhiming 2018-07-24 23:20:22 +08:00 2
http://www.cnblogs.com/crazylqy/p/7611069.html
这文章写的不错的: 在 Repeatable Read 隔离级别下,如果进行全表扫描的当前读,那么会锁上表中的所有记录,同时会锁上聚簇索引内的所有 GAP,杜绝所有的并发 更新 /删除 /插入 操作。 |
4
XOXO360 2018-07-24 23:35:30 +08:00 via Android
这个时候主键重要性。。。
|
5
ppyybb 2018-07-24 23:48:11 +08:00 via iPhone
是什么存储引擎,隔离级别是 rc 还是 rr ?如果是 innodb 的话,快照读不会加锁,不影响插入。如果是当前读导致全表扫描,那么应该会锁住所有记录(全部加 next-key,同时加入一个表级意向锁,但是不会采取表锁,可以自行验证),这时候插入应该会被阻塞,因为插入带来的插入意向锁和 next-key 是冲突的。(否则就会导致幻度,这违反 rr 的定义)
|
6
alexfarm OP @abcbuzhiming 谢谢,今天仔细阅读一下
|
7
gabon 2018-07-25 08:33:36 +08:00 via iPhone
读写分离
|