Shiro logout 302重定向,shiro 302解決方案
阿新 • • 發佈:2022-04-09
MVCC是在併發訪問資料庫時,通過對資料做多版本管理,避免因為寫鎖的阻塞而造成讀資料的併發阻塞問題。
1,和version思想差不多,innoDB下,開啟一個事務,mysql的表對應有3個隱藏列
DB_TRX_ID: 記錄操作該資料事務的事務ID;
DB_ROLL_PTR:指向上一個版本資料在undo log 裡的位置指標;
DB_ROW_ID: 隱藏ID ,當建立表沒有合適的索引作為聚集索引時,會用該隱藏ID建立聚集索引;
2.在開啟事務修改的時候,會把原資料存進undo log裡面,並把存的指標存在隱藏列DB_ROLL_PTR上,
同時這個DB_TRX_ID會加一,跟版本號一樣一樣的思想。
3.傳送提交的時候,之間提交就好,回滾的時候從隱藏列找到對應的undo log資料回滾。
insert:會在 undo log 中記錄下方才你 insert 進來的資料的 ID,當你 想 roll back 時,根據 ID 完成精準的刪除。
delete:會在 undo log 中記錄方才你刪除的資料,當你回滾時會將刪 除前的資料 insert 進去。
update:會在 undo log 中記錄下修改前的資料,回滾時只需要反向 update 即可。
select:別費心了,select 不需要回滾。
詳細請看:
https://zhuanlan.zhihu.com/p/52977862