
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 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 读写分离 |