9.MySQL存储引擎
孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。
1.什么是存储引擎
存储引擎是MySQL中的“文件系统”
2.存储引擎的种类
1.Oracle MySQL自带的存储引擎种类
mysql> show engines;
FEDERATED
MEMORY
InnoDB
PERFORMANCE_SCHEMA
MyISAM
MRG_MYISAM
BLACKHOLE
CSV
ARCHIVE
2.分支产品的存储引擎种类介绍
Pwecona、Mariadb
TokuDB、MyRocks、Rocksdb
特点:
1.压缩比例15倍以上
2.插入数据性能高
适应场景:
例如Zabbix监控类的平台、归档库、历史数据存储业务
3.InnoDB存储引擎特性
MVCC:多版本并发控制
聚簇索引:用来组织存储数据和优化查询,IOT
支持事务:数据安全保证
支持行级锁:控制并发
外键
多缓冲区支持
自适应Hash索引:AHI
复制中支持高级特性
备份恢复:支持热备
自动故障恢复:CR Crash Recovery
双写机制:DWB Double Write Buffer
PS:InnoDB核心特性有那些?与M有ISAM区别有那些?
InnoDB支持事务、MVCC、聚簇索引、外键、缓冲区、AHI、CR、DW,MyISAM不支持
InnoDB支持行级锁,M有ISAM支持表级锁
InnoDB支持热备(业务正常运行,影响低),MyISAM支持温备份(锁表备份)。
InnoDB支持CR(自动故障恢复),宕机自动故障恢复,数据安全和一致性可以得到保证。MyISAM不支持,宕机可能丢失当前修改。
4.存储引擎的基本操作
1.查询支持的存储引擎
mysql> show engines;
2.查询、设置默认的存储引擎
mysql> select @@default_storage_engine;
vim /etc/my.cnf
default_storage_engine=InnoDB
重启生效
3.查看、设定表的存储引擎
查看某张表的存储引擎
show create table xta;
查询系统中所有业务表的存储引擎信息
mysql> select TABLE_SCHEMA,TABLE_NAME,ENGINE from information_schema.tables where TABLE_SCHEMA not in ('information_schema','performance_schema','sys','mysql');
创建表设定存储引擎
create table xxx (id int) engine=innodb charset=utf8mb4;
修改已有表的存储引擎
alter table xxx engine=innodb charset=utf8mb4;
未经允许不得转载:孙某某的运维之路 » 9.MySQL存储引擎
评论已关闭