mysql 儲存引擎

來源:互聯網
上載者:User

標籤:style   ar   使用   sp   on   檔案   資料   bs   ef   

MySQL有多種儲存引擎,MyISAM和InnoDB是其中常用的兩種。這裡介紹關於這兩種引擎的一些基本概念(非深入介紹)。

MyISAM基於傳統的ISAM類型,支援全文檢索搜尋,但不是事務安全的,而且不支援外鍵。每張MyISAM表存放在三個檔案中:frm 檔案存放表格定義;資料檔案是MYD (MYData);索引檔案是MYI (MYIndex)。

InnoDB(預設)是事務型引擎,支援復原、崩潰恢複能力、多版本並發控制、ACID事務,支援行級鎖定(InnoDB表的行鎖不是絕對的,如果在執行一 個SQL語句時MySQL不能確定要掃描的範圍,InnoDB表同樣會鎖全表,如like操作時的SQL語句),以及提供與Oracle類型一致的不加鎖 讀取方式。InnoDB儲存它的表和索引在一個資料表空間中,資料表空間可以包含數個檔案。

主要區別:

  • MyISAM是非事務安全型的,而InnoDB是事務安全型的。

  • MyISAM鎖的粒度是表級,而InnoDB支援行級鎖定。

  • MyISAM支援全文類型索引,而InnoDB不支援全文索引。

  • MyISAM相對簡單,所以在效率上要優於InnoDB,小型應用可以考慮使用MyISAM。

  • MyISAM表是儲存成檔案的形式,在跨平台的資料轉移中使用MyISAM儲存會省去不少的麻煩。

  • InnoDB表比MyISAM表更安全,可以在保證資料不會丟失的情況下,切換非事務表到事務表(alter table tablename type=innodb)。

應用情境:

  • MyISAM管理非事務表。它提供高速儲存和檢索,以及全文檢索搜尋能力。如果應用中需要執行大量的SELECT查詢,那麼MyISAM是更好的選擇。

  • InnoDB用於交易處理應用程式,具有眾多特性,包括ACID事務支援。如果應用中需要執行大量的INSERT或UPDATE操作,則應該使用InnoDB,這樣可以提高多使用者並行作業的效能。

常用命令:

  (1)查看錶的儲存類型(三種):

  • show create      table tablename

  • show table      status from  dbname  where name=tablename

  • mysqlshow       -u user -p password --status dbname tablename

  (2)修改表的儲存引擎:

  • alter table      tablename type=InnoDB

  (3)啟動mysql資料庫的命令列中添加以下參數使新發布的表都預設使用事務:

  • --default-table-type=InnoDB

  (4)臨時改變預設表類型:

  • set      table_type=InnoDB

  • show      variables like ‘table_type‘

 


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.