MySQL中支持的存储引擎有十几种,但是常用的存储引擎就那么几个,想要好的性能,首先就要选择合适的数据库引擎。

常见的数据库引擎有三种,我们来看看它们之间的对比:

MyISAMMemoryInnoDB
用途快读内存数据完整的事务支持
全表锁定全表锁定多种隔离级别的行锁
持久性基于表恢复无磁盘I/O,无可持久性基于日志(redo log)的恢复
支持索引类型B-tree,FullText,R-treehash,B-treeB+tree
hash(InnoDB哈希索引是引擎自适应的,无法人为干预),FullText(5.6+开始支持)
事务特性不支持不支持支持

存储引擎的选择大概业务判断:

(1)采用MyISAM

  • 通常用来做记录的表,表现形式为 读多写少
  • 并发不高,不需要事务

(2)采用InnoDB

  • 涉及到事务
  • 并发高,涉及数据量大
  • 更新频繁

(3)采用Memory

  • 足够的内存
  • 对数据一致性要求不高,例如在线人数等
  • 需要定期归档的数据