07-存储引擎-01

2019-12-25  本文已影响0人  UncleZ_strive

1.存储引擎介绍

相当于Linux 文件系统.组织存储表数据.

2.存储引擎的种类

mysql> show engines;
InnoDB 
MyISAM
CSV
Memory
MariaDB  : InnoDB,TokuDB ,Myrocks  
percona  : xtradb ,TokuDB ,Myrocks 

TokuDB ,Myrocks : 比较适合于在写入操作较多的场景,数据量级大的场景.
原因是: 插入性能很高, 压缩比较高.
适用于监控类的业务.

select concat("alter table zabbix.",table_name," engine=tokudb") from information_schema.tables
where table_schema='zabbix';

3.InnoDB存储引擎的核心特性

问题:
1.InnoDB存储引擎的特性
2.InnoDB和MyISAM的区别
答案:

MVCC       多版本并发控制  
聚簇索引   PK
事务
行级锁     MyISAM支持表锁
外键       FK 
复制支持高级特性: GTID等高级复制
自适应hash索引 
支持热备,MyISAM支持温备份
ACSR(自动故障恢复)

4. 存储引擎的操作

mysql> show engines;
mysql> select @@default_storage_engine;
mysql> create table mt (id int) engine=myisam;
mysql> create table et (id int) engine=innodb;
mysql> SELECT table_schema,table_name ,ENGINE ,CONCAT("alter table ",table_schema,".",table_name," engine=innodb;") AS "修改建议"
FROM information_schema.tables
WHERE table_schema NOT IN ('sys','information_schema','performance_schema','mysql')
AND ENGINE <> 'innodb';
+--------------+------------+--------+--------------------------------------+
| table_schema | table_name | ENGINE | 修改建议                             |
+--------------+------------+--------+--------------------------------------+
| test         | mt         | MyISAM | alter table test.mt engine=innodb;   |
| test         | test       | MyISAM | alter table test.test engine=innodb; |
+--------------+------------+--------+--------------------------------------+
2 rows in set (0.01 sec)
alter table test.test engine=innodb; 

小项目:
环境:centos7.4,MySQL 5.7.20,InnoDB存储引擎
业务特点:数据量级较大,经常需要按月删除历史数据.
问题:磁盘空间占用很大,不释放
处理方法:
以前:将数据逻辑导出,手工truncate表,然后导入进去
现在:
对表进行按月进行归档表
业务替换为truncate方式

5. InnoDB存储引擎物理存储结构

一般情况下: 安装MySQL ,提前设置好

[root@db01 ~]# cat /etc/my.cnf 
ibdata1:512M:ibdata2:512M:autoextend
上一篇 下一篇

猜你喜欢

热点阅读