實際上,悲觀并發控制實際上是“先取鎖再訪問”的保守策略,為數據處理的安全提供了保證。但是在效率方面,處理加鎖的機制會讓數據庫產生額外的開銷,還有增加產生死鎖的機會;
另外,在只讀型事務處理中由于不會產生沖突,也沒必要使用鎖,這樣做只能增加系統負載;還有會降低了并行性,一個事務如果鎖定了某行數據,其他事務就必須等待該事務處理完才可以處理那行數據。
一般來說,我們可以針對粒度對其進行進一步分類,分為表鎖和行鎖:
行鎖為給某一行上鎖(如果是 X 鎖則類似于修改某一篇文章);
表鎖則為給一個表加上鎖(如果是 X 鎖則類似于為了更換博客系統而將整個博客下線了),通常用在 DDL 語句中,如 DELETE TABLE,ALTER TABLE 等,由于表鎖影響整個表的數據,并發性不如行鎖好。