1. 瑣是什么;
數據庫為了保證數據的一致性,是各種共享資源在被并發訪問的時候變得有序所設計的。
2. 查看mysql存儲引擎;
3. Mysql鎖機制;
表級鎖定、行級鎖定和頁級鎖定
4.共享鎖
` select ... lock in share mode`
在讀取的任何行上設置共享模式鎖。其他會話可以讀取行,但不能在事務提交之前修改它們。如果其中一個行被另一個尚未提交的事務更改,那么您的查詢將等待,直到事務結束,然后使用最新的值。
5.排他鎖(悲觀鎖)
` SELECT ... FOR UPDATE`
6.樂觀鎖
首先我們要知道,樂觀鎖是用戶自己定義的,在表中添加一個版本字段(verion),
操作的時候不加鎖,而在進行更新后,再去判斷是否有沖突了。
通常實現是這樣的:在表中的數據進行操作時(更新),先給數據表加一個版本(version)字段,每操作一次,將那條記錄的版本號加1。也就是先查詢出那條記錄,獲取出version字段,如果要對那條記錄進行操作(更新),則先判斷此刻version的值是否與剛剛查詢出來時的version的值相等,如果相等,則說明這段期間,沒有其他程序對其進行操作,則可以執行更新,將version字段的值加1;如果更新時發現此刻的version值與剛剛獲取出來的version的值不相等,則說明這段期間已經有其他程序對其進行操作了,則不進行更新操作。
`update task set value = newValue,version = versionValue +1 where version =versionValue;`