日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql 存储引擎有哪些以及MyISAM和InnoDB区别

發布時間:2025/3/19 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql 存储引擎有哪些以及MyISAM和InnoDB区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、InnoDB 存儲引擎

InnoDB 是事務型數據庫的首選引擎,支持事務安全表(ACID),支持行鎖定和外鍵,InnoDB 是默認的 MySQL引擎。

2、MyISAM 存儲引擎

MyISAM 基于 ISAM 存儲引擎,并對其進行擴展。它是在 Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一。MyISAM 擁有較高的插入、查詢速度,但不支持事物。

3、MEMORY 存儲引擎

MEMORY 存儲引擎將表中的數據存儲到內存中,未查詢和引用其他表數據提供快速訪問。

4、NDB 存儲引擎

DB 存儲引擎是一個集群存儲引擎,類似于 Oracle 的 RAC,但它是 Share Nothing 的架構,因此能提供更高級別的高可用性和可擴展性。NDB 的特點是數據全部放在內存中,因此通過主鍵查找非常快。

關于 NDB,有一個問題需要注意,它的連接(join)操作是在 MySQL 數據庫層完成,不是在存儲引擎層完成,這意味著,復雜的 join 操作需要巨大的網絡開銷,查詢速度會很慢。

5、Memory (Heap) 存儲引擎

Memory 存儲引擎(之前稱為 Heap)將表中數據存放在內存中,如果數據庫重啟或崩潰,數據丟失,因此它非常適合存儲臨時數據。

6、Archive 存儲引擎

正如其名稱所示,Archive 非常適合存儲歸檔數據,如日志信息。它只支持 INSERT 和 SELECT 操作,其設計的主要目的是提供高速的插入和壓縮功能。

7、Federated 存儲引擎

Federated 存儲引擎不存放數據,它至少指向一臺遠程 MySQL 數據庫服務器上的表,非常類似于 Oracle 的透明網關。

8、Maria 存儲引擎

Maria 存儲引擎是新開發的引擎,其設計目標是用來取代原有的 MyISAM 存儲引擎,從而成為 MySQL 默認的存儲引擎。

存儲引擎 MyISAM和InnoDB區別:

1)InnoDB支持事務,MyISAM不支持。
2)MyISAM適合查詢以及插入為主的應用,InnoDB適合頻繁修改以及涉及到安全性較高的應用。
3)InnoDB支持外鍵,MyISAM不支持。
4)從MySQL5.5.5以后,InnoDB是默認引擎。
5)MyISAM支持全文類型索引,而InnoDB不支持全文索引。
6)InnoDB中不保存表的總行數,select count() from table時,InnoDB需要掃描整個表計算有多少行,但MyISAM只需簡單讀出保存好的總行數即可。注:當count()語句包含where條件時MyISAM也需掃描整個表。
7)對于自增長的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中可以和其他字段一起建立聯合索引。
8)清空整個表時,InnoDB是一行一行的刪除,效率非常慢。MyISAM則會重建表。MyisAM使用delete語句刪除后并不會立刻清理磁盤空間,需要定時清理,命令:OPTIMIZE table dept;
9)InnoDB支持行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like ‘%lee%’)
10)Myisam創建表生成三個文件:.frm 數據表結構 、 .myd 數據文件 、 .myi 索引文件,Innodb只生成一個 .frm文件,數據存放在ibdata1.log現在一般都選用InnoDB,主要是MyISAM的全表鎖,讀寫串行問題,并發效率鎖表,效率低,MyISAM對于讀寫密集型應用一般是不會去選用的。
應用場景:
1.MyISAM不支持事務處理等高級功能,但它提供高速存儲和檢索,以及全文搜索能力。如果應用中需要執行大量的SELECT查詢,那么MyISAM是更好的選擇。
2.InnoDB用于需要事務處理的應用程序,包括ACID事務支持。如果應用中需要執行大量的INSERT或UPDATE操作,則應該使用InnoDB,這樣可以提高多用戶并發操作的性能。

總結

以上是生活随笔為你收集整理的Mysql 存储引擎有哪些以及MyISAM和InnoDB区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。