https://storage.iamsjy.com/E-books/%E6%95%B0%E6%8D%AE%E5%BA%93/
一、mysql数据库存储引擎
1.1 innoDB存储引擎
是目前最常用的,支持事务,没有全文索引(1.2版本开始支持),在互联网大厂主要使用,具备高可用性,高性能已经高扩展性
1.2 MyISAM存储引擎
不支持事务和表锁设计,但支持全文索引。主要用于非etl场景,如报表查询等,缓冲池只缓存索引文件,不缓冲数据文件。5.0版本开始,支持256TB的表单数据。
由MYD和MYI组成。MYD存放数据文件,MYI存放索引文件。
1.3 NDB存储引擎
集群式存储引擎。 起结构是share nothing的集群架构,因此能提供更高的可用性。
特点是:数据全部存在内存中(5.1版本开始可以将非索引数据放在磁盘中),因此主键查询极快,并且通过添加NDB数据存储节点(Data Node)可以线性提高数据库性能,是高可用,高性能的集群系统。
有一点不同:NDB存储引擎的连接操作(JOIN)是在mysql 数据库层完成的,而不是存储引擎完成的。这意味着,复杂的连接操作需要巨大的网络开销,因此查询速度很慢。
1.4 Memory存储引擎
Memory存储引擎(之前称为HEAP存储引擎)将表中数据存在内存中,如果数据库重启或者发生崩溃,表中数据全部消失。适合存储临时表,以及数据仓库中的维度表。
默认使用哈希索引,而不是B+树索引,但可以手动配置B+树。
只支持表锁,并发性较差,不支持TEXT和BLOB列类型。
mysql数据库使用memory存储引擎作为临时表来存放查询的中间结果集。如果中间结果集大于Memory存储引擎表的容量设置时,又或者中间结果含义TEXT和BLOB列类型字段,则mysql数据库会把中间结果集转换到MyISAM存储引擎表而存放到磁盘中。之前提到的MyISAM不缓存数据文件,因此这时产生的临时表的性能对于查询会有损耗。
1.5 Archive存储引擎
只支持Insert和select操作,5.1版本开始支持索引。archive存储引擎使用zlib算法将数据行进行压缩后存储,压缩比一般可以达到1:10。正如其名,主要用于存储归档数据,如日志信息。
有行锁,支持高并发插入。但是本身并不是事务安全的存储引擎。设计目标主要是提供高速插入和压缩的功能。
1.6 Federated存储引擎
并不存放数据,只是指向一台远程mysql数据库服务器上的表。类似于oracle的透明网关,当前Federated存储引擎只支持mysql数据库表,不支持异构数据库表。
1.7 Maria存储引擎
maria存储引擎是新开发的引擎,设计目标主要是用来取代原有的MyISAM存储引擎。可以看成是MyISAM存储引擎的后续版本。
特点是:支持缓存数据和索引文件,应用了行锁设计,提供了MVCC功能,支持事务和非事务安全的的选项,以及BlOB字符类型的处理性能。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2020-01-16 ldap结合shiro搭建统一登录平台