mysql的儲存引擎

來源:互聯網
上載者:User

標籤:mysql   innodb   

  • 什麼是儲存引擎?

  •          比如:一個視頻可以是mp4格式或者avi格式,但是使用者看起來都是差不多的,直觀差別就是佔用系統的空間與清晰程度不一樣。儲存引擎差不多,對於mysql來說,無論採用的是什麼引擎來儲存,使用者看到的資料都市一樣的,不同的引擎存取,引擎功能,佔用的空間大小,讀取效能可能有區別。


    mysql最常用的儲存引擎為MyISAM和InnoDB 。


    MyISAM:在mysql5.5以前是預設的儲存引擎,在5.5以後修改為innodb,因為InnoDB引擎由於對事務參照完整性,以及高並發等優點。 


    事務:(不僅是針對mysql,所有的關係性資料庫都有事務特性)

           事務就是指邏輯上的一組sql語句操作,組成這組操作的各個sql語句,執行時要麼全成功要麼全失敗。

    事務的四大特性(ACID)

    原子性(Atomicity):事務時一個不可分割的單位,事務中的所有sql等操作要麼都發生,要麼都不發生

    一致性(Consistency):事務發生前和發生後,資料的完整性必須保持一直

    隔離性(Isolation):當並發訪問資料庫時,一個正在執行的事務在執行完畢前,對於其他的會話時不可見的,多個並發事務之間的資料是相互隔離的

    持久性(Durability):一個事務一旦被提交,它對資料庫中的資料改變是永久性的,如果出了錯誤不允許撤銷,只能通過“補償性事務”


    事務的開啟

           start transcation  開啟事務

           rollback  復原事務,如果執行錯誤就執行復原

           commit   提交事務  退出事務


    Innodb引擎

          最大的特性就是事務。

    Innodb共用資料表空間,預設只有一個檔案,在這個檔案中在進行分類,也可以拆開,一個表一個為念

    -rw-rw---- 1 mysql mysql 12582912 2月  22 20:37 ibdata1


    InnoDB引擎 特點

         1.支援事務

         2.行級鎖定(更新是一般是鎖定當前行):通過索引實現,全表掃描仍然會是表鎖,注意間隙鎖的影響

         3.讀寫阻塞與事務隔離相關

         4.具有非常高效的緩衝特性,能緩衝索引,也能快取資料

         5.整個表和主鍵以cluster方式儲存,組成一顆平衡樹

         6.所有Secondary Index都會儲存主鍵資訊

          *7.支援分區,資料表空間,類似oracle

    小結:支援事務,支援行級鎖,支援外鍵,資料表空間,對硬體要求比較高


    innodb引擎調優精要

    1. 主鍵儘可能小,避免給Secondary index帶來過大的空間負擔

    2. 避免全表掃面,因為會使用表鎖

    3. 儘可能緩衝所有的索引和資料,提高響應速度,減少磁碟IO

    4. 在大批量小插入的時候,盡量自己控制事務而不要使用自動認可,有開關可以控制提交方式

    5. 合理設定innodb_flush_log_at_trx_commit的值為0,log buffer美妙就會被刷寫記錄檔到磁碟,提交事務的時候不要做任何操作

    6. 避免主鍵更新,因為這會帶來大量的資料移動。


    關於innodb在設定檔中的部分參數:關於更多的最佳化參考

    innodb_additional_mem_pool_size 
    用來存放Innodb的內部目錄,這個值不用分配太大,系統可以自動調。通常設定16M夠用了,如果表比較多,可以適當的增大。
    設定方法,在my.cnf檔案裡:
    innodb_additional_mem_pool_size = 16M

    1)記憶體利用方面:
    innodb_buffer_pool_size 
    這個是Innodb最重要的參數,和MyISAM的key_buffer_size有相似之處,但也是有差別的。 
    這個參數主要緩衝innodb表的索引,資料,插入資料時的緩衝。


    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.