mysql数据库出现幻读,MySQL 幻读怎样处理?_数据库
生活随笔
收集整理的這篇文章主要介紹了
mysql数据库出现幻读,MySQL 幻读怎样处理?_数据库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySQL 幻讀怎樣處理?
1、MVCC快照,將歷史數據存一份快照,在其事件增添與刪除數據時,保證當前事件來說是不可見的;
多半數據庫都完成了多版本并發掌握,而且都是靠保留數據快照來完成的。
以 InnoDB 為例,每一行中都冗余了兩個字斷。一個是行的建立版本,一個是行的刪除(逾期)版本。版本號跟著每次事件的開啟自增。事件每次取數據的時刻都邑取建立版本小于當前事件版本的數據,以及逾期版本大于當前版本的數據。
一般的 select 就是快照讀。
select * from T where number = 1;
2、“next-key”鎖,將當前數據行與上一條數據和下一條數據之間的間隙鎖定,保證此范圍內讀取的數據是一致的。
next-key 鎖包括兩部分
紀錄鎖(行鎖)
間隙鎖
紀錄鎖是加在索引上的鎖,間隙鎖是加在索引之間的。(思索:假如列上沒有索引會發作什么?)
select * from T where number = 1 for update;
select * from T where number = 1 lock in share mode;
insert
update
delete
引薦教程:《MySQL教程》
以上就是MySQL 幻讀怎樣處理?的細致內容,更多請關注ki4網別的相干文章!
收藏 | 0
總結
以上是生活随笔為你收集整理的mysql数据库出现幻读,MySQL 幻读怎样处理?_数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: table数据跑马灯效果
- 下一篇: oracle数据库11gr2,Oracl