pav*_*red 69 mysql database storage innodb database-engine
我环顾四周,发现一些MySQL引擎是innodb和MyISAM.也许还有更多.我的问题是这些数据库引擎是什么?
不同的MySQL引擎有什么区别?更重要的是,我如何决定使用哪一个?
Vin*_*ard 71
mysql> SHOW ENGINES;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
Run Code Online (Sandbox Code Playgroud)
如果我必须使用MySQL,我个人总是使用InnoDB.它支持事务和外键,而MyISAM则不支持.
Gol*_*rol 38
MyISAM和InnoDB是最常用的引擎.
MyISAM比InnoDB略快,并实现了FULLTEXT索引,这对于集成搜索功能非常有用.MyISAM不是事务处理,也不实现外键约束,这是一个主要缺点.
但是您可以使用两者中的最佳功能并使用不同的存储引擎创建表.有些软件(我认为是WordPress)使用Inno来处理大多数数据,例如页面,版本等之间的关系.这些帖子的记录包含一个ID,该ID链接到使用MyISAM的单独内容表中的记录.这样,内容存储在具有最佳搜索功能的表中,而大多数其他数据存储在强制数据完整性的表中.
如果我是你,我会选择Inno,因为它是最可靠的.如果需要,仅将MyISAM用于特定目的.
您可以将数据库配置为在创建新表时默认使用InnoDB.
raj*_*pta 13
可用的存储引擎不同,没有理由不使用MyISAM或InnoDB引擎类型.MyISAM在大多数情况下都会这样做,但如果你的搜索和选择相比有大量的更新或插入,那么你将从InnoDB引擎中获得更好的性能.要从InnoDB中获得最佳性能,您需要调整服务器的参数,否则没有理由不使用它.
MERGE引擎是一种非常有效的方法,可以从多个相同定义的表中查询数据.MEMORY引擎是对数据执行大量复杂查询的最佳方式,这些查询在基于磁盘的引擎上搜索效率很低.CSV引擎是导出可在其他应用程序中使用的数据的好方法.BDB非常适合具有经常访问的唯一密钥的数据.