12事務處理

安佰勝發表於2011-01-12


12事務處理

==============

開始事務

 start transaction;
 開始後在事務中支援rollback

事務結束的標記
 commit;
 drop database/drop table
 create index/drop index
 alter table/rename table
 lock tables/unlock tables
 set autocommit=1

 autocommit設定只對innodb有效,myisam型別表資料變化立即生效
 
--------

mysql提供的孤立級別
 serializable  序列化
 repeatable read 可重複讀
 read committed 提交的讀
 read uncommitted未提交的讀

修改鼓勵級別

set transaction isolation level read commited;

序列化:
 級別最高,與oracle的事務一致性類似
 只有事務完成後其他session才能看見資料的變化
 但其他session在第一個session事務完成前不能更改資料

可重複讀
 與序列化級別類似,事務不提交其他session不可以讀到資料的變化
 只要不違反約束其他session可以改變資料
 也就是可能出現幻影讀

提交的讀
 在事務中可以看到其他事務新增的記錄
 但事務部提交外部無法看見事務中資料的改變

未提交的讀
 可以讀到其他事務沒有提交的資料
 髒讀

-------------------

表鎖定代替事務
 
 lock table table_name lock_type;
 unlock tables;

lock table a read;
lock table a write;

同時存在write級別更高 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13177610/viewspace-684210/,如需轉載,請註明出處,否則將追究法律責任。

相關文章