關於鎖和事務的優化建議
關於鎖和事務的優化建議併發
- 看這篇文章的兄弟,能夠先去看一下我寫的鎖和事務
- 使用RC隔離級別
- 精心設計索引,並儘可能使用索引訪問數據,使加鎖更精確,從而減小鎖衝突的機會
- 選擇合理的事務大小,小事務發生鎖衝突的概率也更小
- 給記錄集顯示加鎖時,最好一次性請求足夠級別的鎖,好比要修改數據的話,最好直接申請排它鎖,而不是先申請共享鎖,修改時再請求排它鎖,這樣容易產生死鎖
- 不一樣的程序訪問一組表時,應儘可能約定以相同的順序訪問各表,對一個表而言,儘量以固定的順序存取表中的行,這樣能夠大大減小死鎖的機會
- 儘可能使用相等條件訪問數據,這樣能夠避免間隙鎖對併發插入的影響
- 除非必需要作,查詢時不要顯示加鎖. MySQL的MVCC能夠實現事務中的查詢不用加鎖,優化事務性能;MVCC只有COMMITTED READ (讀取已提交) 和REPEATABLE READ (可重複讀) 兩種隔離級別下工做
歡迎關注本站公眾號,獲取更多信息