InnoDB和MyISAM之间的主要区别(“您询问的有关设计表或数据库的问题”)是对“参照完整性”和“事务”的支持。
如果您需要数据库来强制执行外键约束,或者您需要数据库来支持事务(即,由两个或多个DML *** 作进行的更改作为单个工作单元处理,则所有更改都已应用,或者所有更改都已还原)那么您将选择InnoDB引擎,因为MyISAM引擎缺少这些功能。
这是两个最大的区别。另一个大差异是并发性。使用MyISAM,DML语句将在表上获得排他锁,并且在保持该锁的同时,没有其他会话可以在表上执行SELECT或DML *** 作。
您询问的那两个特定引擎(InnoDB和MyISAM)具有不同的设计目标。MySQL还具有其他具有自己的设计目标的存储引擎。
因此,在InnoDB和MyISAM之间进行选择时,第一步是确定您是否需要InnoDB提供的功能。如果没有,那么MyISAM就可以考虑了。
缺少关于问题空间的更详细的讨论,对于差异的更详细的讨论是不切实际的……应用程序将如何使用数据库,多少个表,表的大小,事务负载,select的数量,插入,更新,并发要求,复制功能等。
数据库的逻辑设计应围绕数据分析和用户需求进行;使用关系数据库的选择将在以后出现,甚至更晚时将选择MySQL作为关系数据库管理系统,然后为每个表选择一个存储引擎。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)