MySql的架構和曆史

來源:互聯網
上載者:User

標籤:

1.1、mysql的邏輯架構

    架構為如下:

           儲存引擎:負責資料的儲存和提取,供了幾十個API供服務層進行調用。各個儲存引擎之間不會進行互動,只是供服務層進行調用。事務控制和鎖的管理也是在儲存引擎裡面進行。

           服務層:一個sql過來之後,會在服務層進行解析,建立解析樹,調用底層的儲存引擎得到各種開銷資訊和統計資訊,進行各種最佳化,決定表的讀取順序以及選擇合適的索引。

1.2  並發控制

  1、 mysql通過加讀鎖和寫鎖來進行並發控制。

  2、鎖的粒度

        表鎖      並發程度低,鎖的開銷小                  alter table  會加表鎖

       行級鎖   並發程度高,但是鎖的開銷大

   3、鎖的控制是在儲存引擎裡面實現的,所以不同的儲存引擎加鎖的順序是不一樣的,有的能引起死結有的則不會。

1.3事務    事務的ACID屬性

         原子性:一個事務的操作要麼全部執行成功,要麼全部失敗復原。

         一致性:在執行事務的第3,4條語句的時候資料庫崩潰了,資料還是一致的。

          隔離性:一個事務的操作對另一個事務的可見度。Mysql預設為可重複讀。

          持久性:一旦事務提交,其所做的修改就會永久的同步到資料庫中。

     1.3.1隔離等級

         read  uncommited(讀未提交)   造成髒讀

          read commited(提交讀)        造成不可重複讀取

                 oracle和sql  server預設是這種層級

          repeatable    read(可重複讀)   造成幻讀

                mysql預設是此層級(通過MVCC和鎖機制)   

               mysql通過mvcc和間隙鎖解決了幻讀的問題

           seriable(可序列化)

              事務是串列執行的

       1.3.2死結

            因為請求資源的方式不一致可能導致死結

           資料庫系統實現死結檢測,解除死結,和請求鎖逾時等機制。

           如果死結發生,會將含有最少行級鎖的事務進行復原來解除死結。

         1.3.3  交易記錄

            因為更新資料到磁碟上資料分布的不均勻,所以花費的時間比較長。但是可以將操作以日誌的形式添加到記錄檔末尾,日誌的儲存操作是有序的。這能加快速度。

          1.3.4mysql的事務

            1、預設每個串連都是AutoCommit,可以在建立串連之後通過命令 show variables  like  ‘AUTOCOMMIT‘來查看當前的狀態。

                 可以通過 set  AUTOCOMMIT=0來設定事務不是自動認可的。那麼所有查詢都是在一個事務裡,直到顯式的進行提交或者進行復原。

            2、一些操作會自動認可當前的事務,如alter table,lock   tables

           3、設定事務的隔離等級(可以設定全域的和會話層級的)

               可以通過set  transaction isolation  level來設定全域的交易隔離等級

              可以通過set session      transaction isolation  level  設定本連結的隔離等級,並在下次事務中生效。

          1.3.5混合使用儲存引擎

                1、不推薦這樣使用

                2、如果一個事務同時操作支援事務的儲存引擎表和不支援事務的儲存引擎表,如果事務成功提交則沒什麼問題。如果交易回復,則支援事務的儲存引擎表能復原,但是不支援事務的儲存引擎表不能復原,會造成資料一致性問題。

 

MySql的架構和曆史

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.