深入探討:MySQL數(shù)據(jù)庫MyISAM與InnoDB存儲(chǔ)引擎的比較
MySQL有多種存儲(chǔ)引擎,MyISAM和InnoDB是其中常用的兩種。這里介紹關(guān)于這兩種引擎的一些基本概念(非深入介紹)。
MyISAM是MySQL的默認(rèn)存儲(chǔ)引擎,基于傳統(tǒng)的ISAM類型,支持全文搜索,但不是事務(wù)安全的,而且不支持外鍵。每張MyISAM表存放在三個(gè)文件中:frm 文件存放表格定義;數(shù)據(jù)文件是MYD (MYData);索引文件是MYI (MYIndex)。
InnoDB是事務(wù)型引擎,支持回滾、崩潰恢復(fù)能力、多版本并發(fā)控制、ACID事務(wù),支持行級(jí)鎖定(InnoDB表的行鎖不是絕對(duì)的,如果在執(zhí)行一個(gè)SQL語句時(shí)MySQL不能確定要掃描的范圍,InnoDB表同樣會(huì)鎖全表,如like操作時(shí)的SQL語句),以及提供與Oracle類型一致的不加鎖讀取方式。InnoDB存儲(chǔ)它的表和索引在一個(gè)表空間中,表空間可以包含數(shù)個(gè)文件。
主要區(qū)別:
•MyISAM是非事務(wù)安全型的,而InnoDB是事務(wù)安全型的。
•MyISAM鎖的粒度是表級(jí),而InnoDB支持行級(jí)鎖定。
•MyISAM支持全文類型索引,而InnoDB不支持全文索引。
•MyISAM相對(duì)簡(jiǎn)單,所以在效率上要優(yōu)于InnoDB,小型應(yīng)用可以考慮使用MyISAM。
•MyISAM表是保存成文件的形式,在跨平臺(tái)的數(shù)據(jù)轉(zhuǎn)移中使用MyISAM存儲(chǔ)會(huì)省去不少的麻煩。
•InnoDB表比MyISAM表更安全,可以在保證數(shù)據(jù)不會(huì)丟失的情況下,切換非事務(wù)表到事務(wù)表(alter table tablename type=innodb)。
應(yīng)用場(chǎng)景:
•MyISAM管理非事務(wù)表。它提供高速存儲(chǔ)和檢索,以及全文搜索能力。如果應(yīng)用中需要執(zhí)行大量的SELECT查詢,那么MyISAM是更好的選擇。
•InnoDB用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括ACID事務(wù)支持。如果應(yīng)用中需要執(zhí)行大量的INSERT或UPDATE操作,則應(yīng)該使用InnoDB,這樣可以提高多用戶并發(fā)操作的性能。
常用命令:
(1)查看表的存儲(chǔ)類型(三種):
•show create table tablename
•show table status from dbname where name=tablename
•mysqlshow -u user -p password --status dbname tablename
(2)修改表的存儲(chǔ)引擎:
•alter table tablename type=InnoDB
(3)啟動(dòng)mysql數(shù)據(jù)庫的命令行中添加以下參數(shù)使新發(fā)布的表都默認(rèn)使用事務(wù):
•--default-table-type=InnoDB
(4)臨時(shí)改變默認(rèn)表類型:
•set table_type=InnoDB
•show variables like 'table_type'
相關(guān)文章
Mysql實(shí)現(xiàn)增量恢復(fù)的方法詳解
本文給大家分享的是如何實(shí)現(xiàn)mysql增量恢復(fù)的場(chǎng)景以及具體實(shí)現(xiàn)方法,有需要的小伙伴可以參考下2018-07-07MYSQL SERVER收縮日志文件實(shí)現(xiàn)方法
這篇文章主要介紹了MYSQL SERVER收縮日志文件實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08MySQL數(shù)據(jù)庫優(yōu)化推薦的編譯安裝參數(shù)小結(jié)
這篇文章主要介紹了MySQL數(shù)據(jù)庫優(yōu)化推薦的編譯安裝參數(shù)小結(jié),需要的朋友可以參考下2015-04-04MySQL數(shù)據(jù)庫引擎介紹、區(qū)別、創(chuàng)建和性能測(cè)試的深入分析
本篇文章是對(duì)MySQL數(shù)據(jù)庫引擎介紹、區(qū)別、創(chuàng)建和性能測(cè)試進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06