国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 佛山市| 罗平县| 宝山区| 任丘市| 休宁县| 临夏县| 平昌县| 威宁| 大庆市| 沂源县| 新宁县| 巴南区| 沂南县| 邳州市| 白沙| 凤山县| 宜黄县| 东城区| 郓城县| 澜沧| 台湾省| 鹤峰县| 萨迦县| 长春市| 荥阳市| 萍乡市| 开封市| 石城县| 永年县| 朝阳县| 新巴尔虎左旗| 齐齐哈尔市| 石棉县| 安化县| 宜昌市| 万荣县| 牙克石市| 万源市| 永福县| 太和县| 集安市|