资讯专栏INFORMATION COLUMN

InnoDB与MyISAM的区别(详细)

tulayang / 959人阅读

摘要:因此,在设计表的时候,不建议使用过长的字段作为主键,也不建议使用非单调的字段作为主键,这样会造成主索引频繁分裂。

一、InnoDB的特点

支持行锁,采用MVCC来支持高并发,有可能死锁

支持事务

支持外键

支持崩溃后的安全恢复

不支持全文索引

B+Tree叶节点的data域存放的是数据记录的地址。在索引检索的时候,首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其 data 域的值,然后以 data 域的值为地址读取相应的数据记录。这被称为“非聚簇索引”。

二、MyISAM的特点

不支持行锁(MyISAM只有表锁)

不支持事务

不支持外键

不支持崩溃后的安全恢复

支持BLOB和TEXT的前500个字符索引,支持全文索引

对于不会进行修改的表,支持压缩表,极大地减少了磁盘空间的占用

其数据文件本身就是索引文件。相比MyISAM,索引文件和数据文件是分离的,其表数据文件本身就是按B+Tree组织的一个索引结构,树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引。这被称为“聚簇索引(或聚集索引)”。而其余的索引都作为辅助索引,辅助索引的data域存储相应记录主键的值而不是地址,这也是和MyISAM不同的地方。在根据主索引搜索时,直接找到key所在的节点即可取出数据;在根据辅助索引查找时,则需要先取出主键的值,再走一遍主索引。 因此,在设计表的时候,不建议使用过长的字段作为主键,也不建议使用非单调的字段作为主键,这样会造成主索引频繁分裂。

三、关于二者的对比和总结
MyISAM 强调的是性能,每次查询具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。MyISAM更适合读密集的表,而InnoDB更适合写密集的的表

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48939.html

相关文章

  • MySQL存储引擎--MyISAMInnoDB区别

    摘要:,是的数据库引擎之一,为发布的标准之一。目前采用双轨制授权,一是授权,另一是专有软件授权。文件存储表定义。索引文件的扩展名是。在备份和恢复时可单独针对某个表进行操作。支持事务和行级锁,是的最大特色。 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但...

    tomener 评论0 收藏0
  • MySQL中InnoDBMyISAM存储引擎区别

    摘要:作为,我们应该深刻的认识存储引擎。今天介绍两种最常见的存储引擎和它们的区别和。存储引擎存储引擎不支持事务表锁设计,支持全文索引,主要面向联机分析处理应用,适用于数据仓库等查询频繁的场景。从版本,版本后,两者都支持全文索引。 MySQL数据库区别于其他数据库的很重要的一个特点就是其插件式的表存储引擎,其基于表,而不是数据库。由于每个存储引擎都有其特点,因此我们可以针对每一张表来挑选最合适...

    PingCAP 评论0 收藏0
  • MySQL存储引擎中MyISAMInnoDB区别

    摘要:基本的差别为类型不支持事务处理等高级处理,而类型支持。对于类型的字段,中必须包含只有该字段的索引,但是在表中,可以和其他字段一起建立联合索引。而不支持所以往往就容易被人认为只适合在小项目中使用。 MyISAM 和InnoDB 讲解  InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理...

    lufficc 评论0 收藏0
  • PHP技能评测(一)

    摘要:的函数判断值为否为空格式功能检查一个变量是否为空返回值若变量不存在则返回若变量存在且其值为以及没有任何属性的对象,则返回若变量存在且值不为以及没有任何属性的对象,则返回版本更多说明的返回值,但不会因为变量未定义而产生警告信息。 作者:PHP学习网 出处:https://www.viphper.com/?p=1236 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面...

    用户84 评论0 收藏0
  • MyISAMInnoDB比较

    摘要:关于与选择和是数据库提供的两种存储引擎。两者的优劣可谓是各有千秋。索引和数据是分开的,而且其索引是压缩的,可以更好地利用内存。适合查询以及插入为主的应用,适合频繁修改以及涉及到安全性较高的应用。 MyISAM: 不支持事务,而且也不支持外键,但是每次查询都是原子的 支持表级锁,即每次操作是对整个表加锁 一个MYISAM表有三个文件:索引文件、表结构文件(.frm文件)、数据文件(.M...

    jk_v1 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<