InnoDB和MyISAM是在使用MySQL最常用的兩個表類型

          InnoDB和MyISAM是在使用MySQL最常用的兩個表類型,各有優缺點,視具體應用而定。基本的差別為:MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持。MyISAM類型的表強調的是性能,其執行數度比InnoDB類型更快,但是不提供事務支持,而InnoDB提供事務支持已經外部鍵等高級數據庫功能。

          MyIASM是IASM表的新版本,有如下擴展:?
          二進制層次的可移植性。?
          NULL列索引。?
          對變長行比ISAM表有更少的碎片。?
          支持大文件。?
          更好的索引壓縮。?
          更好的鍵嗎統計分布。?
          更好和更快的auto_increment處理。?

          以下是一些細節和具體實現的差別:

          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%”

          任何一種表都不是萬能的,只用恰當的針對業務類型來選擇合適的表類型,才能最大的發揮MySQL的性能優勢.

          本篇文章來源于 -
          http://www.itokit.com - web開發技術 原文地址是: http://www.itokit.com/bbs/viewthread.php?tid=12017

          posted on 2009-04-06 14:34 luofeng225 閱讀(318) 評論(0)  編輯  收藏 所屬分類: MySql

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導航

          統計

          公告

          我曾經聽到這么一個故事: 一個年輕的程序員問一個老程序員(一個比較牛逼的公司的CTO) 年輕程序員: 你為什么這么牛X., 就好像沒有你不會的。老程序員: 積累的。年輕程序員: 怎么才能積累到您的程度呢。我每天都在積累。但是似乎都沒有感覺到進步。老程序員: 我從20歲開始做到了一件事情,直到今天,而且盡可能地保證不間斷。年輕程序員: 到底是什么? 老程序員: 我每天保證自己有2個小時在學習新的東西。

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          收藏夾

          Java Website

          java技術博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长顺县| 涟源市| 长春市| 柘荣县| 同心县| 清丰县| 屯留县| 诸暨市| 五家渠市| 东光县| 潜山县| 河津市| 延吉市| 肇源县| 大安市| 墨竹工卡县| 常山县| 定远县| 报价| 永年县| 闽清县| 木里| 赤壁市| 杭州市| 巴中市| 石首市| 沭阳县| 嘉鱼县| 西和县| 东乌珠穆沁旗| 平利县| 朝阳县| 岳池县| 大厂| 龙井市| 怀宁县| 乌兰浩特市| 塔河县| 五大连池市| 韶山市| 安阳县|