日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

關于MySQL的Myisam和Innodb的一些比較總結

系統 2188 0

總結一下MySQL的Myisam和Innodb引擎的一些差別,權當復習了。

首先二者在 文件構成 上:

?

  • Myisam會存儲三個文件:.frm 存儲表結構,.MYD存儲表的數據,.MYI文件存儲表的索引;所以完整的拷貝一張表這三個文件都需要。另外Myisam會對索引進行壓縮。用Myisam備份會更簡單。
  • Innodb也有 .frm表結構文件,但是數據存儲就不同了,由于有表空間的概念,所以數據文件可能是獨立的,也可能是空閑的,獨立的話數據和索引都會在一個.ibd文件內。
事務 的支持:
  • Myisam不支持;所以如果你真的需要諸如事務,外鍵等特性,放棄它吧。
  • Innodb支持 事物,回滾等一些事務安全的ACID特性,支持外鍵。
  • Myisam只支持表鎖,意即如果你執行了一條DML(數據操縱語言,即增刪改查)語句,整張表會獲得一把鎖,在操作執行完之前其他人不能夠再操作這張表了,所以如果表的并發高,Myisam性能會差一些
  • Myisam支持行鎖,即可以只給某一行上鎖而非整個表,所以在并發情況下,Update之類的操作性能會更好。當然如果一條SQL語句不能確定掃描范圍時,也會鎖表,諸如where like'%'的操作。更簡單來說,Innodb使用where檢索的列沒有索引,那么就會鎖表了。
DML (Insert, Select, Update, Delete):
  • Select:一般認為Myisam的讀性能會比Innodb更好,所以如果是個讀多寫少的項目,這點上Myisam可以有加分。
  • Insert:這個要分情況來說,單線程操作,Myisam明顯會快,但是并發多的話就不一定了。還有需要說明的是Myisam支持Insert Delayed操作,如果你的應用可以接受這種使用方式(可能延遲一下才生效),那么它會更好一些
  • Update:一般認為Innodb更快
  • Delete:Innodb,它會一行行的刪除表,而不是重新建立表
其他:
  • count(*) ?:Myisam會保存表的具體行數,而innodb不會,所以你在用phpmyadmin來查看時,表的行數會顯示'~'大約多少行。所以select count(*) 用Myisam當然快,不過這是不加where條件的情況下
  • Myisam還支持全文索引,比如說搜索諸如某些text字段時 where * like "%*"時性能和效率會更好
  • Auto_Increment:Innodb必須包含只有該字段的索引,而Myisam可以使用聯合索引。
  • Myisam建立的表可以使用Myisam_merge引擎,在某些情況下很有用。

?

?

關于MySQL的Myisam和Innodb的一些比較總結


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 灵台县| 承德县| 临安市| 泗水县| 黄陵县| 澳门| 卢龙县| 江山市| 宜城市| 海南省| 长治县| 搜索| 资阳市| 浦北县| 花垣县| 朝阳县| 巴彦淖尔市| 循化| 阜城县| 年辖:市辖区| 南皮县| 镇江市| 北辰区| 禄丰县| 汤原县| 荔浦县| 连南| 潍坊市| 南丹县| 华池县| 农安县| 即墨市| 武隆县| 城口县| 平顶山市| 东莞市| 泾阳县| 富源县| 象州县| 泗洪县| 盈江县|