InnoDB和MyISAM之间的主要区别("在设计表或数据库方面"你问过)是对"引用完整性"和"事务"的支持.
如果您需要数据库来强制执行外键约束,或者需要数据库来支持事务(即,两个或多个DML操作所做的更改作为单个工作单元处理,所有更改要么已应用,要么已还原),那么您可以 Select InnoDB引擎,因为MyISAM引擎没有这些功能.
这是两个最大的区别.另一个很大的区别是并发性.使用MyISAM,DML语句将获得表上的独占锁,当该锁被持有时,其他会话无法对表执行SELECT或DML操作.
您询问的两个特定引擎(InnoDB和MyISAM)有不同的设计目标.MySQL还有其他存储引擎,它们有自己的设计目标.
因此,在InnoDB和MyISAM之间进行 Select 时,第一步是确定是否需要InnoDB提供的功能.如果没有,那么MyISAM将被考虑.
如果没有对问题空间进行更详细的讨论,对差异进行更详细的讨论是相当不切实际的(在本论坛中)...应用程序将如何使用数据库、表的数量、表的大小、事务负载、 Select 、插入、更新的数量、并发性要求、复制功能等.
数据库的逻辑设计应以数据分析和用户需求为中心;使用关系数据库的 Select 会在以后出现,甚至会在以后 Select MySQL作为关系数据库管理系统,然后 for each 表 Select 存储引擎.