MySQL存储引擎

存储引擎

MySQL支持多种存储引擎(Storage Engine),每种引擎都有其自身的特点和适用场景。存储引擎是MySQL架构中的一个核心组件,它负责数据的物理存储、索引结构、并发控制以及事务处理。以下是一些常见的MySQL存储引擎以及它们的特点:

MyISAM

MyISAM:MyISAM既不支持事务、也不支持外键、其优势是访问速度快,但是表级别的锁定限制了它在读写负载方面的性能,因此它经常应用于只读或者以读为主的数据场景。

InnoDB

在 MySQL 5.5 及以后版本后,MySQL 选择使用 InnoDB为默认存储引擎。事务型数据库的首选引擎,支持ACID事务,支持行级锁定。

MEMORY

  • 特点:将数据存储在内存中,非持久性,支持表级锁、快速读写操作。
  • 适用场景:需要非常快速的临时存储、缓存、临时数据存储。

MyISAM和InnoDB区别

MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改的应用。其主要区别如下:

  1. 事务支持:InnoDB 支持事务,MyISAM 不支持。
  2. 外键约束:InnoDB 支持外键,而 MyISAM 不支持。
  3. 锁级别:InnoDB支持表级锁、行级锁,默认为行级锁;而 MyISAM 仅支持表级锁。
  4. 主键:InnoDB 必须要有主键,MyISAM可以没有主键
  5. 重建表:清空整个表时,InnoDB 是一行一行删除,MyISAM 则会重建表。
  6. **全文搜索:**InnoDB不直接支持全文搜索索引;MyISAM支持全文搜索索引,适用于文本搜索应用。
  7. 性能:InnoDB适合高并发读写需求的应用,对于写操作性能较好;MyISAM适合读密集型应用,对于读操作性能较好。

其他存储引擎

CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。

BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。

Archive:只有INSERT和SELECT操作,Archive非常适合存储归档数据,如记录日志信息可以使用Archive。

innodb什么时候使用表锁

只有在你增删改查时匹配的条件字段带有索引时,innodb才会使用行级锁。行级锁锁的是索引

在你增删改查时匹配的条件字段不带有索引时,innodb使用的将是表级锁。

如何更改存储引擎

首先存储引擎是表级别的。

修改前最好备份一下表和数据

## 查看存储引擎类型
SHOW TABLE STATUS LIKE 'your_table_name';

## 备份
CREATE TABLE new_table_name SELECT * FROM your_table_name;

## 修改引擎类型
ALTER TABLE your_table_name ENGINE = InnoDB;
  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值