Mysql 中 MyISAM 和 InnoDB 的区别有哪些

区别有:1、InnoDB 支持事务MyISAM 不支持;2、InnoDB 支持外键;3、InnoDB 是聚集索引,MyISAM 是非聚集索引等。InnoDB 支持事务MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一。

Mysql 中 MyISAM 和 InnoDB 的区别有哪些-Worktile社区

1、InnoDB 支持事务MyISAM 不支持

InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一。InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一。

2、InnoDB 支持外键

InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败;MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。

3、InnoDB 是聚集索引,MyISAM 是非聚集索引

InnoDB 是聚集索引,MyISAM 是非聚集索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

4、InnoDB 不保存表的具体行数

InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。

而MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快。

5、InnoDB 最小的锁粒度是行锁,MyISAM是表锁

InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。这也是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;

延伸阅读:

什么是MyISAM?

MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参照完整性与并发违规处理机制,后来就逐渐取代MyISAM。

MyISAM,是默认存储引擎。它基于更老的ISAM代码,但有很多有用的扩展。(注意MySQL 5.1不支持ISAM)。 每个MyISAM在磁盘上存储成三个文件。名列前茅个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。

每个MyISAM数据表,皆由存储在硬盘上的3个文件所组成,每个文件都以数据表名称为文件主名,并搭配不同扩展名区分文件类型:

.frm--存储数据表定义,此文件非MyISAM引擎的一部分。

.MYD--存放真正的数据。

.MYI--存储索引信息。

文章标题:Mysql 中 MyISAM 和 InnoDB 的区别有哪些,发布者:小编,转载请注明出处:https://worktile.com/kb/p/34794

(6)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年1月9日 上午12:40
下一篇 2023年1月9日 上午12:42

相关推荐

  • 关于神经网络能够拟合任何函数有哪些方面的探讨

    神经网络,特别是深度神经网络,因其高度的灵活性和自适应性而被广泛应用。关于神经网络能够拟合任何函数,我们需要从以下几个方面来探讨:1、基本理论;2、激活函数的角色;3、网络结构与深度;4、参数数量与复杂性;5、实际应用与限制;6、总结与前景。 1、基本理论 神经网络的通用近似定理指出,一个包含足够多…

    2023年7月23日
    45400
  • 操作指南:如何优化代码重构流程以提高效能

    优化代码重构流程以提高效能的步骤:1、制定明确的重构目标;2、建立完备的测试套件;3、版本控制备份;4、小步快跑;5、持续集成与持续部署;6、代码评审;7、性能优化;8、技术债务还款;9、文档更新;10、团队培训;11、持续改进。在软件开发领域,代码重构是维护和改进代码质量的重要手段之一,通过重构可以提高代码的可读性、可维护性和性能,减少技术债务,从而更好地适应变化。

    2023年11月16日
    40400
  • devops文件用什么打开

    DEVOPS文件打开指导 面对DEVOPS文件,打开的途径主要涵盖1、利用兼容的开发操作软件、2、转换为其他格式尝试不同的程序。其中,利用兼容的开发操作软件尤为关键,因为DevOps作为一套流程和方法论,充分融合软件开发(Dev)与软件操作(Ops),其相关的文件往往需要特定的工具或平台才能有效处理…

    2024年3月26日
    5700
  • 版本管理工具有哪些

    版本管理工具有:1、VSS;2、CVS;3、SVN;4、GIT;5、HG。其中,VSS是指,VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。 一、VSS VSS 的…

    2023年4月19日
    1.1K00
  • 项目管理adcp什么意思

    项目管理中的ADCP是“活动定义、活动排序、活动资源估算、活动持续时间估算”的缩写,表示项目管理过程的关键步骤。1、活动定义涉及详细识别并确定工作范围内所有必须进行的具体行动或任务;2、活动排序则是确定项目活动之间的逻辑关系;3、活动资源估算涉及判定完成每项活动所需的资源类型与数量;4、活动持续时间…

    2024年1月8日
    48400
  • 如何为研发团队制定和执行有效的培训计划

    为研发团队制定和执行有效的培训计划的方法:1、确定培训目标;2、评估团队成员的需求;3、制定详细的培训计划;4、确定培训方法和形式;5、实施培训计划;6、跟踪培训效果;7、建立持续学习文化;8、建立导师制度;9、跨部门交流与合作;10、保持与业界同步;11、建立良好的沟通渠道;12、制定灵活的培训计划。

    2023年11月12日
    53100
  • vscode为什么安装不了插件

    无法在VSCode中安装插件可能是由于几个主要原因:网络连接问题、VSCode版本兼容性问题、插件市场访问限制、文件权限设置错误。在这些原因中,网络连接问题往往是最常见的原因之一,特别是在网络环境受限或者需要通过代理访问互联网的情形下。当VSCode尝试连接到插件市场时,如果无法成功建立连接,就会导…

    2024年4月3日
    26700
  • 32位操作系统怎么升级

    以升级Windows 10至64位为例,32位操作系统升级的步骤:1、确保您当前的32位版本Windows 10已启用;2、从Microsoft官方网站下载Windows媒体建立工具;3、连接至少有4GB可用空间的USB等。确保当前32位版本已启用的路径是设置-更新与安全性-启用。

    2023年1月9日
    3.1K00
  • 什么是信息系统项目管理师

    信息系统项目管理师是指具备信息系统项目管理的相关知识、技能和经验的专业人员,负责组织、协调、监督和管理信息系统项目以保证项目的顺利实施。信息系统项目管理师需要熟悉项目管理的生命周期、方法和工具,能够应对项目过程中的复杂问题和挑战。在信息系统项目管理中,1、项目范围和需求管理、2、时间和成本控制、3、…

    2024年1月8日
    24900
  • list set map存取区别

    list set map存取区别在于:1、定义不同;2、数据顺序不同。list是一种有序集合,按照对象进入的顺序保存对象,允许重复对象;set是无序的集合,不是按照对象进入的顺序保存,不可重复;map以键值对的方式存储元素,根据键得到值,所有Map集合的Key是无序不可重复的。

    2023年1月31日
    76300

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部