1. 程式人生 > >《High Performance MySQL》概譯 讀/寫鎖

《High Performance MySQL》概譯 讀/寫鎖

今天在微博看到訊息該書的中文版已經翻譯完成即將發售,所以OneCoder不再進行全文翻譯,只會以類似讀書筆記的方式記錄文章大意和自己的理解。每天閱讀的不會太多,因為只是休息的時候閱讀,學習的重心最近在Hadoop上。

讀寫鎖

多個使用者同時讀取郵件的時候不會有什麼問題,以為沒有人去修改檔案。但是在有人正在的讀的時候刪除郵件就會產生問題。所以,出於安全考慮,讀也應該特別關注。

這裡的郵箱其實就跟資料庫中的表類似。每個郵件就是一行資料。修改資料庫中的行資料,就相當於修改郵箱中某個郵件的資訊。

解決這個問題思路很簡單,就是加鎖。讀寫操作就實現了鎖系統。有兩種鎖,共享鎖和排它鎖,或者叫做讀鎖和寫鎖。

不關心鎖的技術細節,我們這樣描述鎖的原理。讀鎖是共享的或者說互助不堵塞的。客戶端之間可以共同讀取資源。寫鎖是排他的,同一時間只有獲得鎖的客戶端可以操作,其他讀、寫請求均被堵塞。因為只有這樣才是安全的。

在資料庫系統中,鎖隨處可見。MySQL也必須避免在有人讀取資料的時候,資料被他人修改。其內部實現了鎖系統,並且對外部是透明的。