前言:
本章概要描述MySQL服務器架構、各種存儲引擎間的主要區別及區別的重要性
回顧MySQL歷史背景、基準測試,通過簡化細節和演示案例來討論MySQL的原理
正文:
MySQL架構可在多種不同場景中應用,可嵌入到應用程序中農,支持數據倉庫、內容索引、部署軟件、高可用冗余系統、在線事務處理系統等;
MySQL最重要的特性是他的存儲引擎架構,使得查詢處理及其他系統任務和數據存儲、提取分離;

鎖策略:在鎖開銷和數據安全性間尋求平衡,每個存儲引擎可實現指定鎖策略和粒度
表鎖:table lock 最基本的 開銷最小 鎖定整表
行級鎖:row lock 最大程度支持并發 最大的鎖開銷 在存儲引擎層(以自己的方式)實現
獨立工作單元,一組原子性SQL查詢
四種,每種規定了事務中所作的修改,較低的隔離可以執行更高的并發、開銷也更低
READ UNCOMMITTED未提交讀
事務中的修改及時沒有提交,對其他事務也是可見的;事務讀取未提交的數據:臟讀;很少使用
READ COMMITTED提交讀
almost庫默認隔離級別,非MySQL;事務從開始到結束只看見已提交的事務所作的修改,本身所做的修改對其他事務不可見;不可重復讀:兩次執行同樣的查詢,結果可能不一樣(其他事務的修改)
REPEATABLE READ可重復讀
MySQL默認,解決了臟讀,同一事務多次讀同樣結果;幻讀:當某個事務在讀取某個范圍內的記錄時、另一個事務在該范圍內插入新的記錄,當前事務再次讀取該范圍記錄、幻行
SERIALIZABLE:可串行化
最高,強制事務串行執行,避免幻讀問題,讀取每行數據時加鎖(可導致大量超時和鎖爭用),很少使用

1、兩個多個事務在同一個資源上相互占用并請求鎖定對方占用的資源;
2、多個事務試圖以不同的順序鎖定資源,可能產生死鎖;
3、多個事務同時鎖定同一個資源;
End. 教程到這里講完了,閱讀是否有所收獲呢?本站還提供有MySQL 數據庫 底層 架構 歷史 相關的內容,歡迎繼續閱讀。
新聞熱點
疑難解答