mysql面试(五)存储引擎类问题「建议收藏」

mysql面试(五)存储引擎类问题「建议收藏」MySQL常用存储引擎 引擎名称 事务 说明 MYISAM N MySQL5.6之前的默认引擎,最常用的非事务型存储引擎 CSV N 以CSV格式存储的非事务型存储引擎 Archive N 只运行查…

MySQL常用存储引擎

引擎名称 事务 说明
MYISAM N MySQL5.6之前的默认引擎,最常用的非事务型存储引擎
CSV N 以CSV格式存储的非事务型存储引擎
Archive N 只运行查询和新增数据不允许修改的非事务型存储引擎
Memory N 是一种易失性非事务型存储引擎
InnoDB Y 最常用事务性存储引擎
NDB Y MySQL集群使用的内存型事务存储引擎

MYISAM

特点

  • 非事务存储引擎
  • 以堆表方式存储
  • 使用表级锁
  • 支持BTree索引,空间索引,全文索引

使用场景

  • 读操作远远大于写操作
  • 不需要使用事务

CSV

特点

  • 非事务型存储引擎
  • 数据以CSV格式存储
  • 所有列都不能为NULL
  • 不支持索引

使用场景

  • 作为数据交换的中间表使用

Archive

特点

  • 非事务型存储引擎
  • 表数据使用zlib压缩
  • 只支持Insert和Select
  • 只允许在自增ID上建立索引

使用场景

  • 日志和数据采集类应用
  • 数据归档存储

Memory

特点

  • 非事务型存储引擎
  • 数据保存在内存中
  • 所有字段长度固定
  • 支持Btree和Hash索引

使用场景

  • 用于缓存字典映射表
  • 缓存周期性分析数据

InnoDB

特点

  • 事务型存储引擎
  • 数据按主键聚集存储
  • 支持行级锁和MVCC
  • 支持Btree和自适应Hash索引
  • 支持全文和空间索引

使用场景

  • 大多数OLTP场景

NDB

特点

  • 事务型存储引擎
  • 数据保存在内存中
  • 支持行级锁
  • 支持高可用集群
  • 支持Ttree索引

使用场景

  • 需要数据完全同步的高可用场景

什么情况下InnoDB无法在线修改表

操作 语法
加全文索引 CREATE FULTEXT INDEX name ON table(column)
加空间索引 ALTER TABLE geom ADD SPATIAL INDEX(g)
删除主键 ALTER TABLE tb_name DROP PRIMARY KEY
增加自增列 alert table t add column id int auto_increment not null primary key
修改列类型 alter table t change c1 c1 NEW_TYPE
修改字符集 alter table t character set = charset_name

在线DDL存在的问题

  • 有部分语句不支持在线DDL
  • 长时间DDL操作会引起严重主从延迟
  • 无法对DDL操作进行资源限制

如何更安全执行DDL

  • pt-online-shema-change [OPTIONS]DSN

InnoDB如何实现事务

原理

特征 说明
原子性(A) 一个事务的所有操作,或全部成功或全部失败
一致性(C) 事务开始之前和事务结束只会,数据库保持完整性
隔离性(I) 每个读写事务的对象和其他事务的操作对象相互分离,该事务提交前对其他事务都不可见
持久性(D) 事务一旦提交,结果就是永久性,如果宕机也能恢复

实现方式

特征 说明
原子性(A) 回滚日志(Undo log): 用于记录数据修改前的状态
一致性(C) 重作日志(Redo log): 用于记录数据修改后的状态
隔离性(I) 锁:用于资源隔离,分为共享锁和排他锁
持久性(D) 重作日志(Redo log)+回滚日志(Undo log)

INNODB锁

  • 查询需要对资源加共享锁(S)
  • 修改需要对资源加排他锁(X)
排他锁 共享锁
排他锁 不兼容 不兼容
共享锁 不兼容 兼容

欢迎扫描下方二维码,持续关注:

mysql面试(五)存储引擎类问题「建议收藏」

互联网工程师(id:phpstcn),我们一起学习,一起进步

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11093.html

(0)
上一篇 2022-12-16
下一篇 2022-12-16

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注