MySQL本地数据库的存储引擎有哪些

InnoDB是MySQL的默认引擎,支持事务和行级锁定。
应用于电商系统,具有很强的并发预防能力。
某电商案例,促销期间MyISAM宕机,通过使用InnoDB解决。

MyISAM不支持事务和表级锁。
用于日志系统,只读且快速。
对于低数据场景,多读少写。

内存(HEAP)节省内存,速度快。
使用临时表,但重新启动时数据会丢失。
我使用排名尝试了这种情况,但我需要备份我的数据。

档案高度压缩,允许更多搜索。
历史记录可以节省空间,但需要时间。
选择存档数据。
不使用索引。

选择引擎: 对于事务,选择 InnoDB。
创建多选InnoDB。
事务性 MyISAM 纯读取,无行。
临时内存和数据将丢失。
存档 请检查存档并慢慢来。

流程: 明确您的需求(事务、并发、读取和写入)。
请参阅官方文档(锁、索引、限制)。
测试性能(高并发、大查询)。

自己掂量一下。

MySQL中重要的数据库存储引擎

显然,MySQL中三个重要的数据库存储引擎是InnoDB、MyISAM和MEMORY。
InnoDB是默认的存储引擎,支持事务处理,适合对高并发读写和数据完整性要求高的应用。
MyISAM读写速度很快,但只适合读多写少的场景。
MEMORY对于临时表和缓存来说没问题,但是服务器重启后数据会丢失。

首先,最重要的是InnoDB支持事务处理,这意味着它可以保证数据的原子性、一致性、隔离性和持久性,适合对可靠性要求较高的系统,例如在线交易系统。
比如我们去年跑的一个项目是一个高并发的金融应用。
我们选择InnoDB是因为大约有3 000个并发请求,事务支持很重要。

还有一点是,虽然MyISAM不支持事务,但表级锁使得读写速度非常快,非常适合读多写少的场景。
很多人不重视这一点。
例如,数据仓库和日志系统通常执行读操作,很少执行写操作,因此MyISAM是一个不错的选择。

还有一个更重要的细节。
MEMORY存储引擎将数据存储在内存中,读写速度非常快,但数据不持久,服务器重启后会丢失。
因此适合临时表、缓存或者需要快速访问但不需要持久化的数据。

我一开始以为MEMORY可以用在所有需要快速访问的场景,但后来发现这是错误的,因为它不适合需要数据持久化的应用。
等等,还有一件事,虽然InnoDB支持外键约束,但它的性能可能会因为外键的存在而受到影响。

所以,选择哪种存储引擎取决于具体的应用需求。
我认为根据不同的场景和需求,合理组合使用这三种存储引擎是值得尝试的。