当前位置: 首页 > 面试题库 >

MyISAM和InnoDB有什么区别?[重复]

阴英武
2023-03-14
问题内容

这个问题已经在这里有了答案

MyISAM与InnoDB [已关闭]
(25个答案)

6年前关闭。

我知道以前曾有人问过这个问题,但大多数时候都是针对特定的数据库或表提出这个问题。我无法在此站点上找到描述这两个引擎及其区别的答案,而不必顾及某人的特定数据库。

我希望将来能够在设计表或数据库方面做出更明智的决定,因此我正在寻找有关两个存储引擎之间差异的全面答案。

MyISAM和InnoDB之间有什么区别,当试图在彼此之间做出选择时我应该寻找什么?


问题答案:

InnoDB和MyISAM之间的主要区别(“您询问的有关设计表或数据库的问题”)是对“参照完整性”和“事务”的支持。

如果您需要数据库来强制执行外键约束,或者您需要数据库来支持事务(即,由两个或多个DML操作进行的更改作为单个工作单元处理,则所有更改都已应用,或者所有更改都已还原)那么您将选择InnoDB引擎,因为MyISAM引擎缺少这些功能。

这是两个最大的区别。另一个大差异是并发性。使用MyISAM,DML语句将在表上获得排他锁,并且在保持该锁的同时,没有其他会话可以在表上执行SELECT或DML操作。

您询问的那两个特定引擎(InnoDB和MyISAM)具有不同的设计目标。MySQL还具有其他具有自己的设计目标的存储引擎。

因此,在InnoDB和MyISAM之间进行选择时,第一步是确定您是否需要InnoDB提供的功能。如果没有,那么MyISAM就可以考虑了。

缺少关于问题空间的更详细的讨论,对于差异的更详细的讨论是不切实际的……应用程序将如何使用数据库,多少个表,表的大小,事务负载,select的数量,插入,更新,并发要求,复制功能等。

数据库的逻辑设计应围绕数据分析和用户需求进行;使用关系数据库的选择将在以后出现,甚至更晚时将选择MySQL作为关系数据库管理系统,然后为每个表选择一个存储引擎。



 类似资料:
  • 本文向大家介绍聊一聊MyISAM和InnoDB的区别,包括了聊一聊MyISAM和InnoDB的区别的使用技巧和注意事项,需要的朋友参考一下 主要有以下区别: 1、MySQL默认采用的是MyISAM。 2、MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在be

  • 问题内容: 这个问题已经在这里有了答案 : MyISAM与InnoDB [已关闭] (25个答案) 7年前关闭。 MyISAM的设计思想是查询数据库远不止其更新,因此它执行非常快的读取操作。如果您的读写(插入|更新)比率小于15%,则最好使用MyISAM。 InnoDB使用行级锁定,具有提交,回滚和崩溃恢复功能来保护用户数据。支持交易和容错 以上区别是正确的MyISAM和InnobDB之间吗? 请

  • 本文向大家介绍MySQL MyISAM 与InnoDB 的区别,包括了MySQL MyISAM 与InnoDB 的区别的使用技巧和注意事项,需要的朋友参考一下 区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务; 2. InnoDB支持外键,而My

  • 问题内容: 什么是和在? 问题答案: 和是用于的存储引擎。 两者在锁定实现上有所不同:锁定表中的特定行,并锁定整个表。 您可以在数据库中创建表时通过给出OR 来指定类型。

  • 本文向大家介绍浅谈MyISAM 和 InnoDB 的区别与优化,包括了浅谈MyISAM 和 InnoDB 的区别与优化的使用技巧和注意事项,需要的朋友参考一下 MyISAM 和 InnoDB 的基本区别 1.InnoDB不支持FULLTEXT类型的索引。 2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算

  • 本文向大家介绍Mysql 的存储引擎,myisam和innodb的区别?相关面试题,主要包含被问及Mysql 的存储引擎,myisam和innodb的区别?时的应答技巧和注意事项,需要的朋友参考一下 InnoDB支持事务, MyISAM不支持. InnoDB支持行级锁, MyISAM支持表级锁. InnoDB支持多版本并发控制(MVVC), MyISAM不支持. InnoDB支持外键, MyISA