久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Mysql中 InnoDB和MyISAM的區別是什么

152次閱讀
沒有評論

共計 1234 個字符,預計需要花費 4 分鐘才能閱讀完成。

本篇文章給大家分享的是有關 Mysql 中 InnoDB 和 MyISAM 的區別是什么,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

 
InnoDB 和 MyISAM 是許多人在使用 MySQL 時最常用的兩個表類型,這兩個表類型各有優劣,視具體應用而定。
 
基本的差別為:MyISAM 類型不支持事務處理等高級處理,而 InnoDB 類型支持。MyISAM 類型的表強調的是性能,其執行數度比 InnoDB 類型更快,但是不提供事務支持,而 InnoDB 提供事務支持已經外部鍵等高級功能。
 
以下是一些細節和具體實現的差別:
 
1.InnoDB 不支持 FULLTEXT 類型的索引。
2.InnoDB 中不保存表的具體行數,也就是說,執行 select count(*) from table 時,InnoDB 要掃描一遍整個表來計算有多少行,但是 MyISAM 只要簡單的讀出保存好的行數即可。注意的是,當 count(*) 語句包含 where 條件時,兩種表的操作是一 3. 對于 AUTO_INCREMENT 類型的字段,InnoDB 中必須包含只有該字段的索引,但是在 MyISAM 表中,可以和其他字段一起建立聯合索引。
4.DELETE FROM table 時,InnoDB 不會重新建立表,而是一行一行的刪除。
 
5.LOAD TABLE FROM MASTER 操作對 InnoDB 是不起作用的,解決方法是首先把 InnoDB 表改成 MyISAM 表,導入數據后再改成 InnoDB 表,但是對于使用的額外的 InnoDB 特性(例如外鍵)的表不適用。
另外,InnoDB 表的行鎖也不是絕對的,假如在執行一個 SQL 語句時 MySQL 不能確定要掃描的范圍,InnoDB 表同樣會鎖全表,例如 update table set num=1 where name like“%aaa%”
  www.2cto.com  
在實際應用中,MyISAM 不一定比 InnoDB 快,原因如下:
 
MyISAM 采用的是表級鎖和讀樂觀鎖,也即是在有讀操作時,所有對同個表的操作將被阻塞等待讀操作完成,反則亦然,多個寫操作之間也會胡星排斥。然而多個讀操作讀取同個表時不會互相排斥,所以在這種讀多寫少的場景下 MyISAM 比使用多版本控制的行級所的 InnoDB 表現的性能要好。
 
InnoDB 采用的是多版本行級鎖,所謂多版本行級鎖,簡單的來講就是 InnoDB 會為沒行記錄增加一個類似于版本庫的隊列,讀操作獲取到的是當前操作的版本的上一個版本,保證讀取到的內容是上一次操作保存好的數據,在寫操作的時候會鎖定當前版本的數據行,完畢后該數據行的版本加 1。這樣,在寫和更新某一行記錄的時候才加鎖,讀的是上一版本的數據,從而給讀寫都頻繁的場景下提供了更高的并發性。

以上就是 Mysql 中 InnoDB 和 MyISAM 的區別是什么,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計1234字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 象山县| 田东县| 东阿县| 额尔古纳市| 原平市| 乌拉特前旗| 萍乡市| 桂阳县| 抚顺县| 屏边| 佛冈县| 盘山县| 敦煌市| 兴安盟| 苗栗市| 睢宁县| 红桥区| 监利县| 格尔木市| 唐山市| 肥乡县| 酉阳| 金溪县| 建瓯市| 常宁市| 瑞金市| 中牟县| 嘉禾县| 鄱阳县| 沽源县| 临泽县| 江油市| 石棉县| 甘洛县| 永丰县| 巧家县| 明光市| 巨鹿县| 滕州市| 师宗县| 汝阳县|