Mysql数据库存储引擎有哪些?

等等,我昨天在调试数据库的时候发现了一些奇怪的情况。
用户报告报告加载速度非常慢。
检查了半天,原来是表数据量太大,卡在了MyISAM加锁机制上。
这个引擎看起来很简单,但是当它真的出问题时,那就真的很痛苦了。

关于Memory(Heap)最神奇的是我上次做了一个实时统计的表格。
数百 TB 的数据直接转储到内存中,更新记录轻而易举。
然而,当我半夜重启服务器并看到丢失的数据时,我仍然需要快速创建自动备份脚本。
毕竟记忆再快,丢了也没啥用。

Federated当时尝试连接三个不同机房的数据库。
结果老板突然说:“为什么网络延迟还是1 00ms?”我当时真想给自己一巴掌。
分布式存储看起来很花哨,但是保持三个时区的数据同步比调整接口更累人。

我突然想到了DBD(BerkeleyDB),这是我在做嵌入式项目时使用过的。
现在我想,嵌入式键值引擎对于物联网设备来说是完美的。
但在开发环境中已经很长时间不再使用了。
现在谁还在编写 BerkeleyDB 定制层?
InnoDB的崩溃恢复机制真的很酷。
去年测试时我们特意关机,重启后数据完全一致。
但有同事抱怨事务日志占用空间太快,几GB的表直接占满了SSD。
如何调整这个平衡取决于业务场景。

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

最近在做一个项目,感觉很苦。
你是否知道,选择正确的MySQL存储引擎实际上会导致一个又一个的陷阱,让人头疼?
我当时做的是一个电子商务系统。
从一开始我就用Maisan。
那玩意的读取速度还算快,但是到了高调促销的时候,哎呀,订单处理失败了,系统直接崩溃了。
当时心里着急,无奈只好把存储引擎换成了InnoDB。
结果,井终于被填满了,系统非常稳定,订单处理也没有出现任何问题。

你为什么问我?不是因为InnoDB支持事务处理,有行级锁,还可以实现外键约束,这在高关系环境下非常棒!如果我早点使用InnoDB,我就不会浪费这么多时间了。

我们来谈谈内存引擎。
这个东西读取数据很快,但是数据是保存在内存里的。
一旦服务器重新启动,数据就消失了。
我之前尝试过使用内存引擎的临时数据缓存项目。
结果,当服务器宕机时,所有数据都会丢失,项目几乎破产。

还有归档引擎,压缩比非常高,但是读写性能很差,而且不支持索引。
之前的归档存储项目中想用archive来节省一些空间,但是发现查询效率太低,所以最后改用了MyISAM。

所以在选择存储引擎的时候,不能只看官方文档。
你应该根据自己的实际需要去尝试。
例如,如果您的项目是基于文本的并且需要数据完整性,那么您应该优先考虑InnoDB。
如果你是面向读者且对事务要求不高的,MyISAM可能是一个不错的选择。

总之,我已经克服了这些陷阱,现在总结一下,大家应该根据业务情况来选择,不要盲目跟风。
像我的电商项目一样,我优先考虑InnoDB来保证交易的安全。
其他项目必须基于一定的条件。
唉,说起它我就热泪盈眶他们倾倒。