MySQL存储引擎

存储引擎的介绍及基本管理

一. 存储引擎介绍及基本管理


1. 存储引擎种类

InnoDB
MyISAM  
MRG_MyISAM
CSV 
MEMORY
SEQUENCE
Aria
PERFORMANCE_SCHEMA 

还可以使用第三方存储引擎

插件类存储引擎, 实在表级别设定的

MySQL 5.5 以后默认存储引擎innodb


第三方存储引擎 TokuDB(mariadb 5.7自带) ------> zabbix等监控软件上使用这个存储引擎

insert 操作, 比innodb快 2-3倍

压缩比: 对数据的压缩比达到8-10倍, 而 innodb只有2-3倍


2. Innodb存储引擎与MyISAM区别(面试题)


Innodb MyISAM
MVCC(多版本并发控制) 不支持
锁(行级别) 锁(表级别)
外键 不支持
事务 不支持
热备 温备
CSR(断电时, 故障自动回复) 不支持

3. 查看存储引擎

show engines;
show create table s19.city;
select table_schema,table_name,engine from information_schema.tables where engine='innodb';
select @@default_storage_engine;


4. Innodb存储引擎物理存储方式介绍


表空间(TBS)管理模式:

  • 独立表空间: 每个表单独使用表空间存储
-rw-rw----. 1 mysql mysql      1675 10月  6 21:25 city.frm  ----->city表的列的相关信息
-rw-rw----. 1 mysql mysql    114688 10月  6 21:25 city.ibd  ----->city表的数据和索引

其中.ibd文件, 被称之为表空间数据文件


  • 共享表空间: 所有的表数据统一放在一起
-rw-rw----. 1 mysql mysql  18874368 10月  7 17:24 ibdata1

mysql5.5版本: 表默认管理模式是共享表空间

mysql5.6版本以后: 表默认管理模式是独立表空间, 共享表空间也存在, 负责存一些系统表以及undo日志, tmp临时表

一般在初始化数据的时候就配置好共享表空间

/etc/my.cnf

innodb_data_file_path=ibdata1:512M;ibdata2:512M;autoextend

生产案例:

zabbix使用的是mysql5.5, 默认是共享表空间, 过一段时间, ibdata1文件越来越大, zabbix很慢, 文件容量已经达到500G

建议:

  1. 升级数据库到5.6或5.7版本
  2. 使用tokudb存储引擎
原文地址:https://www.cnblogs.com/cjwnb/p/11632663.html