MySQL僞事務和性能

用表鎖定代替事務

在MySQL 的MyISAM類型數據表中,並不支持COMMIT(提交)和ROLLBACK(回滾)命令。當用戶對數據庫執行插入、刪除、更新等操做時,這些變化的數據都被馬上保存在磁盤中。這樣,在多用戶環境中,會致使諸多問題,爲了不同一時間有多個用戶對數據庫中指定表進行操做。能夠應用表鎖定來避免在用戶操做數據表過程當中受到干擾。當且僅當該用戶釋放表的操做鎖定後,其餘用戶才能夠訪問這些修改後的數據表。數據庫

應用表鎖實現僞事務

實現僞事務的通常步驟以下:
對數據庫中的數據表進行鎖定操做,能夠對多個表作不一樣的方式鎖定
執行數據庫操做,向鎖定的數據表中執行添加、刪除、修改操等操做
釋放鎖定的數據表,以便讓正在隊列中等待查看或操做的其餘用戶能夠瀏覽數據表中的數據或對操做表執行各類數據的操做。安全

事務和性能

應用不一樣孤立級的事務可能會對系統形成一系列影響,採用不一樣孤立級處理事務,可能會對系統穩定性和安全性等諸多因素形成影響。另外,有些數據庫操做中,不須要應用事務處理,則用戶在選擇數據表類型時,須要選擇合適的數據表類型。因此,在選擇表類型時,應該考慮數據表具備完善的功能,且高效的執行前提下,也不會對系統增長額外的負擔。服務器

應用小事務

應用小事務的意義在於:保證每一個事務不會在執行前等待很長時間,從而避免各個事務由於互相等待而致使系統的性能大幅度降低。ide

選擇合適的孤立級

由於事務的性能與其對服務器產生的負載成反比,即當事務孤立級越高,其性能越低,可是其安全性也越高。性能

MySQL僞事務和性能

死鎖的概念與避免

死鎖,即當兩個或者多個處於不一樣序列的用戶打算同時更新某相同的數據庫時,因互相等待對方釋放權限而致使雙方一直處於等待狀態。blog

相關文章
相關標籤/搜索