MySQL存儲引擎

存儲引擎:不同的存儲引擎可以給數據庫帶來不同的功能和性能。

查看當前數據庫軟件支持哪些存儲引擎
   mysql> show engines;

在mysql 5.5及以後的版本中,默認的存儲引擎是InnoDB,而在5.5之前,默認爲MyISAM引擎

  1. MyISAM引擎
    MyISAM存儲引擎注重速度,但是不支持事務、不支持外鍵等。
    MyISAM存儲引擎的目錄結構   

     .frm:存儲的是表結構
     .MYD:存儲的是表的數據
     .MYI:存儲的是表的索引
         

  2. InnoDB存儲引擎:支持事務、支持行級鎖、支持外鍵

    該存儲引擎在數據庫目錄下僅會存放表的結構
    表的數據存放在/data/mysql目錄下的ibdata1文件中

    5.6裏面索引也存在數據庫目錄下(.ibd)

    InnoDB支持事務:dml操作(insert、update、delete)
        事務滿足四個特性:ACID
        1、A——Atomicity 原子性
           一個事務是一個整體,它裏面的所有操作要麼都做,要麼都不做,不可再分割。
        2、C——Consistency 一致性
           事務開始前和結束後,數據庫的完整性約束是一致的
        3、I——Isolation 隔離性、獨立性
           兩個事務之間是互不相干的
        4、D——Durability  持久性
           事務完成之後,對數據庫的所有的更改都會持久的保存在數據庫中,不會被回滾。
           
    正常來說:事務是可以回滾和提交的。 

    事務結束的標誌:
       1、明確執行commit提交,表示確認更改
       2、明確執行rollback回滾,表示取消所有更改
       3、遇到ddl語句,自動提交(create、alter、drop、truncate)
       4、正常退出,自動提交
       5、異常退出,自動回滾 

  3. memory存儲引擎:數據存放在內存中,重啓服務之後,數據丟失,一般用於臨時表。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章