国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL的MyISAM和InnoDB引擎的主要區(qū)別是哪些

2024-07-24 12:34:45
字體:
供稿:網(wǎng)友
         MySQL的MyISAM和InnoDB引擎的主要區(qū)別是什么?

  1.MyISAM不支持事務(wù),而InnoDB支持。InnoDB的AUTOCOMMIT默認(rèn)是打開的,即每條SQL語句會(huì)默認(rèn)被封裝成一個(gè)事務(wù),自動(dòng)提交,這樣會(huì)影響速度,所以最好是把多條SQL語句顯示放在begin和commit之間,
  組成一個(gè)事務(wù)去提交。
  2.InnoDB支持?jǐn)?shù)據(jù)行鎖定,MyISAM不支持行鎖定,只支持鎖定整個(gè)表。即MyISAM同一個(gè)表上的讀鎖和寫鎖是互斥的,MyISAM并發(fā)讀寫時(shí)如果等待隊(duì)列中既有讀請求又有寫請求,默認(rèn)寫請求的優(yōu)先級高,
  即使讀請求先到,所以MyISAM不適合于有大量查詢和修改并存的情況,那樣查詢進(jìn)程會(huì)長時(shí)間阻塞。因?yàn)镸yISAM是鎖表,所以某項(xiàng)讀操作比較耗時(shí)會(huì)使其他寫進(jìn)程餓死。
  3.InnoDB支持外鍵,MyISAM不支持。
  4. 沒有where的count(*)使用MyISAM要比InnoDB快得多。因?yàn)镸yISAM內(nèi)置了一個(gè)計(jì)數(shù)器,count(*)時(shí)它直接從計(jì)數(shù)器中讀,而InnoDB必須掃描全表。所以在InnoDB上執(zhí)行count(*)時(shí)一般要伴隨where,且
  where中要包含主鍵以外的索引列。為什么這里特別強(qiáng)調(diào)“主鍵以外”?因?yàn)镮nnoDB中primary index是和raw data存放在一起的,而secondary index則是單獨(dú)存放,然后有個(gè)指針指向primary key。
  所以只是count(*)的話使用secondary index掃描更快,而primary key則主要在掃描索引同時(shí)要返回raw data時(shí)的作用較大。

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 神木县| 博爱县| 穆棱市| 建平县| 长武县| 鹰潭市| 应用必备| 渝中区| 建始县| 宝兴县| 蒙山县| 利津县| 湖北省| 贞丰县| 苍南县| 宁国市| 永城市| 吉木萨尔县| 斗六市| 新安县| 辰溪县| 金塔县| 乌兰察布市| 沅陵县| 泉州市| 锡林郭勒盟| 丰原市| 义马市| 尚义县| 南江县| 黄陵县| 涡阳县| 仁怀市| 泽普县| 石阡县| 武宁县| 临汾市| 剑川县| 凤阳县| 新和县| 封丘县|