MySQL存储引擎总结

本文介绍了MySQL的多种存储引擎。MyISAM适合非事务、只读、空间类应用,但已停止维护;Innodb是事务性存储引擎,支持ACID特性和行级锁;CSV以csv格式存储,不支持索引;Archive压缩表数据,只支持特定操作;Memory数据存于内存,有特定使用场景;Ferderated可访问远程表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MyISAM

MySQL5.5之前默认的存储引擎。
  • 表压缩

    myisampack -b -f /usr/local/mysql/data/mall/testmysam.MYI
    注:压缩后只能读取数据,再往表里面新增数据就新增不了。

  • 使用场景:
    (1)非事务型应用(数据仓库,报表,日志数据)
    (2)只读类应用
    (3)空间类应用(空间函数,坐标)

由于现在innodb越来越强大,myisam已经停止维护(绝大多数场景都不适合)

二、Innodb

  • Innodb是一种事务性存储引擎
  • 完全支持事务得ACID特性
  • Redo Log 和 Undo Log
  • Innodb支持行级锁(并发程度更高)

三、CSV

  • 以csv格式进行数据存储
  • 所有列都不能为null的
  • 不支持索引(不适合大表,不适合在线处理)
  • 可以对数据文件直接编辑(保存文本文件内容,修改后需要执行刷新命令:flush privileges;)

四、Archive

  • 组成
    以zlib对表数据进行压缩,磁盘I/O更少
    数据存储在ARZ为后缀的文件中

  • 特点:
    只支持insert和select操作
    只允许在自增ID列上加索引

五、Memory

在这里插入图片描述

  • 特点:
    (1)文件系统存储特点,也称HEAP存储引擎,所以数据保存在内存中
    (2)支持HASH索引和BTree索引
    (3)所有字段都是固定长度 varchar(10) = char(10)
    (4)不支持Blog和Text等大字段
    (5)Memory存储引擎使用表级锁
    (6)最大大小由max_heap_table_size参数决定

  • 使用场景:
    (1)hash索引用于查找或者是映射表(邮编和地区的对应表)
    (2)用于保存数据分析中产生的中间表
    (3)用于缓存周期性聚合数据的结果表

六、Ferderated

  • 特点:
    (1)提供了访问远程MySQL服务器上表的方法
    (2)本地不存储数据,数据全部放到远程服务器上
    (3)本地需要保存表结构和远程服务器的连接信息

  • 使用场景:偶尔的统计分析及手工查询(某些游戏行业)

  • 默认禁止,启用需要再启动时增加federated参数
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值