西南IT社区
    • 注册
    • 登录
    • 搜索
    • 主页
    • 问答
    • 话题
    • 热门
    • 圈子
    • 工作机会
    • 活动
    • 项目

    对比InnoDB与MyISAM

    极客生涯
    myisam 对比innodb与myisam innodb
    1
    1
    99
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 项
      项欢妍 最后由 编辑

      MyISAM在存储结构上:每个MyISAM在磁盘上存储成三个文件。这三个文件分别是表定义文件,表定义文件的名字是以表的名子开始的,用扩展名指出文件类型。数据文件,这个文件用于存储数据,并且用frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件,这部分文件的拓展名是.MYI (MYIndex)。

      InnoDB在存储结构上:InnoDB内部全部的表都保存在同一个数据文件中,InnoDB表的大小等于操作系统文件的大小,一般情况下为2GB。

      存储空间上MyISAM: MyISAM支持支持三种不同的存储格式:静态表,这个表是默认存在的,但是需要注意的是数据末尾不能有空格,否则会被强制删除掉,动态表、压缩表。当表在创建并且导入数据之后,便不会再进行任何的修改操作,可以使用压缩表的方式,来极大的减少对磁盘的空间占用率。
      InnoDB在存储空间上的表现:首先InnoDB需要占用更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

      MyISAM和InnoDB都拥有可移植性、备份及恢复功能。但是相对来说MyISAM:数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进行操作。InnoDB:免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十G的时候就相对痛苦了。

      d6b5069e-eca5-49e2-a0ad-659e9b1045b7-image.png

      InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构),InnoDB的聚集索引必须要有主键,因为通过主键索引效率会更高。而使用辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。

      MyISAM是非聚集索引,也是使用B+Tree作为索引结构,索引和数据文件是分离的,索引用来保存数据文件的指针。并且主键索引和辅助索引是相互独立的,互不相同,用法也不一样。

      13f0636a-2abf-4934-b546-d7c40021b9e9-image.png

      事务支持上MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。

      表主键MyISAM:允许没有任何索引和主键的表存在,索引都是保存行的地址。InnoDB:如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键(用户不可见),数据只是主索引的一部分,附加索引保存的是主索引的值。

      1 条回复 最后回复 回复 引用 0
      • First post
        Last post
      使用HTML构建办公软件 使用HTML构建办公软件 使用HTML构建办公软件
      项
      成
      Y
      洋
      书
      Y
      D
      U
      Y
      娇
      玩
      1
      光
      A
      庆
      小
      U
      Y
      L
      I
      Z
      I
      Y
      C
      Z

      西南地区IT社群(QQ)
      云南
      【昆明网页设计交流吧】243627302
      【昆明nodejs交流吧】 243626749
      【VUE】838405306
      【云南程序员总群】343606807
      【昆明UI设计】104031254
      【云南软件外包】15547313
      贵州
      【PHP/java源码/站长交流群】55692114
      四川
      【成都Java/JavaWeb交流】86669225
      【vaScript+PHP+MySql】116270060
      【UI设计/设计交流学习群】135794928
      重庆
      【诺基亚 JAVA游戏博物馆】 559479780
      【PHP,Java,Python,C++接单】 442103442
      西藏
      社群
      昆明网页设计交流吧
      友情链接
      • Funtask
      • Funtask 社区
      • SUWIS
      ©2019-2021 滇ICP备20006698号