Mysql資料庫引擎

來源:互聯網
上載者:User

標籤:使用   檔案   資料   linux   資料庫   sql   window   設計   

InnoDB和MyISAM是在使用MySQL最常用的兩個表類型,基本的差別為:MyISAM類型不支援交易處理等進階處理,而InnoDB類型支援。但MyISAM類型的表強調的是效能,其執行數度比InnoDB類型更快。另外,MyISAM類型的位元據檔案可以在不同作業系統中遷移。也就是可以直接從Windows系統拷貝到linux系統中使用。可以根據資料表不同的用處是用不同的儲存類型。
InnoDB 是 MySQL 上第一個提供外鍵約束的引擎,除了提供交易處理外,InnoDB 還支援行鎖,提供和 Oracle 一樣的一致性的不加鎖讀取,能增加並發讀的使用者數量並提高效能,不會增加鎖的數量。
InnoDB 的設計目標是處理大容量資料時最大化效能,它的 CPU 利用率是其他所有基於磁碟的關聯式資料庫引擎中最有效率的。
InnoDB 是一套放在 MySQL 背景完整資料庫系統,InnoDB 有它自己的緩衝池,能緩衝資料和索引,InnoDB 還把資料和索引存放在資料表空間裡面,可能包含好幾個檔案,這和 MyISAM 表完全不同,在 MyISAM 中,表被存放在單獨的檔案中,InnoDB 表的大小隻受限於作業系統檔案的大小,一般為 2GB。
InnoDB不支援FULLTEXT類型的索引。LOAD TABLE FROM MASTER操作對InnoDB是不起作用的,解決方案是首先把InnoDB表改成MyISAM表,匯入資料後再改成InnoDB表,但是對於使用的額外的InnoDB特性(例如外鍵)的表不適用。另外,InnoDB表的行鎖也不是絕對的,如果在執行一個SQL語句時MySQL不能確定要掃描的範圍,InnoDB表同樣會鎖全表,例如update table set num=1 where name like "%aaa%"。


MYSQL建表時,如果不指定資料庫表的類型,會預設為MyISAM型資料庫,在建表語句中如果指定ENGINE=InnoDB則資料庫引擎則會是InnoDB類型。
一般情況下,指定好資料庫引擎後,只要操作正確,資料庫引擎是不會變化的,但是如果出現以下操作不當的情況,資料庫引擎就會發生變化:
1、強制kill資料庫;
2、資料庫的log和實際資料不一致;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.