黑洞引擎 mysql_有趣的 Mysql 存储引擎

本文详细介绍了Mysql中的多种存储引擎,包括Memory、CSV、ARCHIVE、BLACKHOLE、MERGE、MyISAM和InnoDB。Memory引擎将数据存储在内存中,适合临时表;CSV用于CSV格式数据;ARCHIVE适用于数据归档,压缩存储;BLACKHOLE引擎则不保存数据;MERGE引擎可聚合多个MyISAM表;MyISAM是传统默认引擎,适合快速读取,不支持事务;而InnoDB是现代默认引擎,支持ACID事务、行级锁,适合高并发场景。
摘要由CSDN通过智能技术生成

Mysql 提供了一套统一的应用开发模型和核心 API,因此,尽管不同的存储引擎拥有不同的特性,不过对于开发人员,应用操作都是完全透明的。应用层的连接并不直接访问存储引擎层,而是访问 Mysql 提供的 Api,也就是说不管所操作的表对象使用什么存储引擎,读写数据时执行的 DDL/DML 语句并没有不同

下面介绍使用最广泛的存储引擎

memory 存储引擎

内存存储引擎,直接把表保存到内存中,在磁盘中只拥有一个 .frm 文件,用来存储表结构的定义

通过指定 engine=memory 设置

当 Mysql 服务关闭时,所有 memory 引擎表中的数据全部会丢失

分配给 memory 引擎表的内存,正常情况不会释放,而是有该表一直持有,即使删除数据,也不会被收回,只有当整个表被删除或者重建时才会回收相关内存

memory 引擎表占用多少内存空间?由两个因素决定

首先 memory 引擎表能使用的最大内存不能超过 max_heap_table_size 系统设置的值,该值默认情况下是 16MB (还可以在会话时,临时设置 max_heap_table_size 变量的值)

在创建时通过 CREATE TABLE 语句的 MAX_ROWS 选项,指定表中最大的记录数的方式来限制表能够使用的内存空间

CSV 存储引擎

CSV 存储引擎是基于 CSV 格式文件存储数据

通过指定 engine=csv 设置

CSV 存储引擎因为自身文件格式的原因,所有列必须强制指定 NOT NULL ,另外 CSV 引擎也不支持索引,不支持分区

<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值