簡述在MySQL數據庫中MyISAM和InnoDB的區別

在mysql客戶我們可以使用這個命令來查看MYSQL支持的引擎:show engines;

MySQL數據庫區別於其他數據庫的最重要的特點就是其插件式的表存儲引擎。切記:存儲引擎是基於表的,而不是數據庫。


InnoDB與MyISAM的區別:


InnoDB存儲引擎: 主要面向OLTP(Online Transaction Processing,在線事務處理)方面的應用,是第一個完整支持ACID事務的存儲引擎(BDB第一個支持事務的存儲引擎,已經停止開發)。
   特點:


1 支持行鎖
2 支持外鍵
3 支持自動增加列AUTO_INCREMENT屬性
4 支持事務
5 支持MVCC模式的讀寫
6 讀的效率低於MYISAM
7.寫的效率高優於MYISAM
9.適合頻繁修改以及設計到安全性較高的應用
10.清空整個表的時候,Innodb是一行一行的刪除,


MyISAM存儲引擎: 是MySQL官方提供的存儲引擎,主要面向OLAP(Online Analytical Processing,在線分析處理)方面的應用。
   特點:


1 獨立於操作系統,當建立一個MyISAM存儲引擎的表時,就會在本地磁盤建立三個文件,例如我建立tb_demo表,那麼會生成以下三個文件tb_demo.frm,tb_demo.MYD,tb_demo.MYI
2 不支持事務,
3 支持表鎖和全文索引
4 MyISAM存儲引擎表由MYD和MYI組成,MYD用來存放數據文件,MYI用來存放索引文件。MySQL數據庫只緩存其索引文件,數據文件的緩存交給操作系統本身來完成;
5 MySQL5.0版本開始,MyISAM默認支持256T的單表數據;
6.選擇密集型的表:MYISAM存儲引擎在篩選大量數據時非常迅速,這是他最突出的優點
7.讀的效率優於InnoDB
8.寫的效率低於InnoDB5
9.適合查詢以及插入爲主的應用
10.清空整個表的時候,MYISAM則會新建表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章