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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL引擎:MyIsam和Innodb的区别

發布時間:2025/5/22 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL引擎:MyIsam和Innodb的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

InnoDB:

定義:

InnoDB是一個事務型的存儲引擎,有行級鎖定和外鍵約束。Innodb引擎提供了對數據庫

ACID事務的支持,并且實現了SQL標準的四種隔離級別,該引擎還提供了行級鎖和外鍵約束,

它的設計目標是處理大容量數據庫系統,它本身其實就是基于MySQL后臺的完整數據庫系統,

MySQL運行時Innodb會在內存中建立緩沖池,用于緩沖數據和索引。但是該引擎不支持FULLTEXT

類型的索引,而且它沒有保存表的行數,當SELECT COUNT(*) FROM TABLE時需要掃描全表。

當需要使用數據庫事務時,該引擎當然是首選。由于鎖的粒度更小,寫操作不會鎖定全表,所以在

并發較高時,使用Innodb引擎會提升效率。但是使用行級鎖也不是絕對的,如果在執行一個SQL

語句時MySQL不能確定要掃描的范圍,InnoDB表同樣會鎖全表。

優點:

1、支持事務處理、ACID事務特性;
2、實現了SQL標準的四種隔離級別;
3、支持行級鎖和外鍵約束;
4、可以利用事務日志進行數據恢復。
5、鎖級別為行鎖,行鎖優點是適用于高并發的頻繁表修改,高并發是性能優于 MyISAM。缺點是系統消耗較大。
6、索引不僅緩存自身,也緩存數據,相比 MyISAM 需要更大的內存。

缺點:

因為它沒有保存表的行數,當使用COUNT統計時會掃描全表。

?

適用場景:

1)經常更新的表,適合處理多重并發的更新請求。

2)支持事務。

3)可以從災難中恢復(通過bin-log日志等)。

4)外鍵約束。只有他支持外鍵。

5)支持自動增加列屬性auto_increment。

?
MyIsam:

定義:

MyISAM 是 MySQL 5.5.5 之前的默認引擎,它的設計目標是快速讀取。但是它沒有提供對數據庫事務的支持,也不支持行級鎖和外鍵,因此當INSERT(插入)或UPDATE(更新)數據時即寫操作需要鎖定整個表,效率便會低一些。

?

優點:

1.高性能讀取;

2.因為它保存了表的行數,當使用COUNT統計時不會掃描全表;

缺點:

1、鎖級別為表鎖,表鎖優點是開銷小,加鎖快;缺點是鎖粒度大,發生鎖沖動概率較高,容納并發能力低,這個引擎適合查詢為主的業務。

2、此引擎不支持事務,也不支持外鍵。

3、INSERT和UPDATE操作需要鎖定整個表;

4、不能在表損壞后恢復數據。(是不能主動恢復)

?

以下兩點必須使用 InnoDB:

(1)可靠性要求比較高,或者要求事務;

(2)表更新和查詢都相當的頻繁,并且表鎖定的機會比較大的情況。

?

對比之下,MyISAM的使用場景:

1)做很多count的計算的。如一些日志,調查的業務表。

2)插入修改不頻繁,查詢非常頻繁的。

3)沒有事務。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的MySQL引擎:MyIsam和Innodb的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

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