我知道以前曾有人问过这个问题,但大多数时候都是针对特定的数据库或表提出这个问题。我无法在此站点上找到描述这两个引擎及其区别的答案,而不必顾及某人的特定数据库。我希望将来能够在设计表或数据库方面做出更明智的决定,因此我正在寻找有关两个存储引擎之间差异的全面答案。MyISAM和InnoDB之间有什么区别,当试图在彼此之间做出选择时我应该寻找什么?
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
MYISAM:
MYISAM支持表级锁定
MyISAM专为速度需求而设计
MyISAM不支持外键,因此我们将带有MYISAM的MySQL称为DBMS
MyISAM使用单独的三个不同文件将其表,数据和索引存储在磁盘空间中。(tablename.FRM,tablename.MYD,tablename.MYI)
MYISAM不支持交易。您无法使用MYISAM进行提交和回滚。发出命令后就完成了。
MYISAM支持全文搜索
如果表具有更多选择,而更新和删除较少,则该表更加静态,则可以使用MyISAM。
INNODB:
InnoDB支持行级锁定
InnoDB设计用于在处理大量数据时发挥最大性能
InnoDB支持外键,因此我们称InnoDB为MySQL是RDBMS
InnoDB将其表和索引存储在表空间中
InnoDB支持事务。您可以使用InnoDB进行提交和回滚
慕田峪7331174
TA贡献1828条经验 获得超13个赞
在RDBMS中,“事务”是一个工作单元。基本上,一组DML语句(一个或多个)以“ START TRANSACTION
”语句启动,并以“ ”语句完成COMMIT
,或以“ ROLLBACK
”语句撤消。至于事务中结果集的一致性,这取决于“隔离级别”。为了清楚起见,MyISAM引擎忽略ROLLBACK
,COMMIT
和START TRANSACTION
语句。使用MyISAM,每个DML语句都被视为一个单独的事务,就像启用了AUTO_COMMIT一样运行。
添加回答
举报
0/150
提交
取消