mysqlinnodb插入意向鎖

innodb中有插入意向鎖,專門針對insert,如果插入前,該間隙已經由gap鎖,那麼Insert會申請插入意向鎖。那麼這個插入意向鎖的作用是什麼?

1、為瞭喚起等待。因為該間隙已經有鎖,插入時必須阻塞。插入 意向鎖的作用具有阻塞功能。

2、插入意向鎖是一種特殊的間隙鎖,既然是一種間隙鎖,為什麼不直接使用間隙鎖?

間隙鎖之間不互斥,不能夠阻塞即喚起等待,會造成幻讀。

3、為什麼不使用記錄鎖或next-key鎖?

申請瞭記錄所或next-key鎖,next-key鎖之間可能互斥,即影響insert的並發性。

不知道這樣理解是否正確,各位有研究過插入意向鎖的能否給個建議?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *