MySQL数据库存储引擎原理
2020-12-18 18:44:28 2 举报
AI智能生成
介绍Mysql数据库存储特性和适用场景,以及如何为业务选择合适的存储引擎
作者其他创作
大纲/内容
innodb
特性
事务性存储引擎
支持ACID特性
Redo和Undo
支持行级锁,行级锁是在存储引擎实现
适用场景
mysql5.7之后,支持全文索引和空间函数
innodb适合大多数OLTP应用
Archive
以zlib对表进行压缩,磁盘IO更少
支持行级锁和专用的buffer,可以高并发插入数据
支持自增ID列创建索引
适用日志和数据采集类应用
Federated
提供访问远程Mysql服务器上表的途径
本地不存储数据
本地保存表结构和远程服务器的连接信息
默认是不开启federated引擎
偶尔的统计分析和手工查询
MySQL数据库存储引擎
MyISAM
非事务型应用
只读类应用
空间类应用
表级锁
支持全文索引和text,blog字段前500字符索引
支持数据压缩myisampack
CSV
数据以文本方式存储在文件中,内容可以直接编辑
建表时所有列必须是not null
不支持索引,不适合大表和在线处理
使用场景
使用做数据交换中间表
Memory
支持hash和btree索引,默认hash索引,hash不支持范围查询,等值查询高效
所有字段为固定长度,不支持blog和text等大字段
使用表级锁
表大小由max_heap_table_size参数决定,参数修改之后,想要对已存在表生效,需要重建表
用于查找或者是映射表,例如邮编和地区的对应表
用于保存数据分析中产生的中间表
用于缓存周期性聚合数据的结果表
如何选择存储引擎
是否支持事务
备份
崩溃恢复
存储引擎特有特性
不要混合适用存储引擎,推荐单一适用存储引擎,在恢复和备份会存在问题
收藏
收藏
0 条评论
下一页