定義:
事務就是程式訪問或更新資料庫的執行單元,事務本身可能只有一條sql語句,也可能包含多條sql語句,但是事務必須滿足acid
事務的acid:
①:原子性:事務的最小單位,具有不可分割的屬性
②:一致性:事務的處理結果,要麼一起完成,要麼一起不完成,沒有第三種形態
③:隔離性:乙個事務的執行不會干擾到其他事務的執行
④:永續性:因為mysql的資料是儲存在硬碟中的,發生特殊情況下不易丟失資料
表級鎖表級鎖是mysql中鎖定粒度最大的一種鎖,它表示只針對當前操作的表(資料)進行枷鎖,因為是鎖定粒度最大的,所以開銷是最小的,而且,但是最容易發生鎖衝突
行級鎖行級鎖是mysql中鎖定粒度最細的一種鎖,它表示只針對當前操作的行(資料)進行加鎖。因為是鎖定粒度最小的,所以也是最安全的,不過與之而來的是高併發、資源開銷大等問題
樂觀鎖將讀寫比作乙個人一樣,每次去修改資料都認為沒人跟它搶資源,所以一般就是不上鎖,但是在使用後會進行資料的前後比對
悲觀鎖相對於樂觀鎖來說,悲觀鎖就是每次運算元據都認為有人跟它搶占資源,所以在每次訪問資源之前都會進行加鎖,等操作完了,在進行解鎖
注意①行級鎖和表級鎖都有共享鎖
和排他鎖
②myisam是一次性對資料全部加鎖或者解鎖,所以不會死鎖,但是innodb是逐步加鎖或者解鎖所以容易死鎖(解死鎖另行參考)
③行級鎖是鎖索引的,而不是直接鎖資料的
myisam引擎:是一種非事務性的引擎,提供高速儲存和檢索,以及全文搜尋能力,適合資料倉儲等查詢頻繁的應用,乙個table實際儲存為三個檔案,.frm儲存表定義,.myd儲存資料,.myi儲存索引
innodb引擎:是一種支援事務的引擎。給mysql提供了具有提交,回滾和崩潰恢復能力的事務安全(acid相容)儲存引擎,資料儲存在乙個或者多個資料檔案中,支援類似於oracle的鎖機制
mysql問答匯集
問 a,b兩台mysql實現主從複製,a提供寫,b提供讀,那既然b要同步a,當a更新資料的時候,b不也一樣要更新嗎?那b不還是沒有實現負載減輕嗎?還有能通過mysql proxy實現3臺mysq均衡l嗎?一台寫,另外兩台讀,mysql proxy能自動來把讀的操作均衡給讀的那兩台機器嗎?答 mysq...
MySQL問答整理
一張id主鍵自增的表,當insert了10條記錄之後,刪除了第8 9 10條記錄,再把mysql重啟,再insert一條記錄,這條記錄的id是11還是8 如表型別是myisam 11。因其把自增主鍵id記錄到檔案中,重啟id不會丟失。如表型別是innodb 8。因其把自增主鍵id記錄到記憶體中,重啟...
乙個簡單易懂但受益匪淺的問答
職業的心態 唐駿 唐駿曾收到一封信,有位員工問他 我也是乙個工程師,我怎樣才能像你一樣花7年的時間,從乙個工程師成為乙個中國區的總裁?有什麼訣竅在裡面?唐駿 我工作時的心態就好像我是公司股東一樣。我不僅做好自己的本職工作,還替微軟想想有哪些做得不夠好或是不合理的地方。其實,看到問題的員工很多,但我不...