1.什么是存储引擎
相当于MySQL内置的文件系统。与 Linux中的文件系统打交道的层次结构。
2. MySQL存储引擎种类
mysql> show engines;
MRG_MYISAM
CSV
MyISAM
BLACKHOLE
PERFORMANCE_SCHEMA
InnoDB MySQL5.5版本以后默认的存储引擎。99%以上的业务表是InnoDB
ARCHIVE
MEMORY
FEDERATED
2.1其他分支
percona : XtraDB
MariaDB : InnoDB
其他的引擎:
TokuDB , MyRocks
Compression: 25x for high compression
Fast Insertions and Deletions
适合于,业务当中有大量插入或者删除操做的场景。
应用于,数据量较大的业务。
2.2实际案例
环境: zabbix 3.2 + centos 7.3 + mariaDB 5.5 InnoDB引擎 ,zabbix系统 监控了2000多个节点服务
现象 : zabbix卡的要死 , 每隔3-4个月,都要重新搭建一遍zabbix,存储空间经常爆满.
问题 :
1. zabbix 版本
2. 数据库版本
3. zabbix数据库500G,存在一个文件里ibdata1,手工删除1个月之前的数据,空间不释放。
优化建议:
1.数据库版本升级到percona 5.7+ 版本 mariadb 10.1+,zabbix升级更高版本
2.存储引擎改为tokudb
3.监控数据按月份进行切割(二次开发:zabbix 数据保留机制功能重写,数据库分表)
4.关闭binlog和双1
5.参数调整....
优化结果:
监控状态良好
原因:
1. 原生态支持TokuDB,另外经过测试环境,5.7要比5.5 版本性能 高 2-3倍
2. TokuDB:insert数据比Innodb快的多,数据压缩比要Innodb高
3.监控数据按月份进行切割,为了能够truncate每个分区表,立即释放空间
4.关闭binlog ----->减少无关日志的记录.
5.参数调整...----->安全性参数关闭,提高性能.
3. InnoDB 核心特性介绍
1 Clustered index2 Chan