当前位置:
文档之家› MySQL数据库体系架构介绍
MySQL数据库体系架构介绍
Michael “Monty” Widenius
MySQL
MaxDB
MariaDB
01 MySQL 介绍
成立MySQLAB 公司
公布源码,采 用GPL协议, 正式进入开源 世界
里程碑,发布 MySQL5.0,奠 定了迈向高性 能数据库基础
Sun收购 MySQL
Oracle收购Sun (MySQL5.5)
支持事务、行锁、支持MVCC多版本并发控制、并发性高 OLTP
不支持事务、表锁、并发很低、资源利用低
OLAP,建议在生产环境少使 用
数据存放在内存中、不落地、支持Hash和Btree索引、读 临时表,论坛当前用户位置功
取速度快, max_heap_table_size
能
高度压缩,zlib无损数据压缩,较MyISAM 8倍,不支持 删改,索引
1.读/写数据比较多的应用 2.不需要事务支持的业务 3.并发性低 4.数据一致性不高
03 InnoDB引擎
1.支持事务 2.行级锁定 3.读写阻塞与事务隔离级别 相关
4.能缓存索引,也能缓存数 据
5.支持热备
03 SQL语句的一生
03 MySQL内存结构
数据库及数据库实例??
03 MySQL存储结构
② 甲骨文公司的两款数据库(Oracle+MySQL)共占据着全世界的数据库市场份额的60%以 上,在中国(Oracle+MySQL)的使用更占到80%左右
③ 中国前100个大企业/国有企业有99个以上使用Oracle为主MySQL为辅,中国前100个互 联网行业公司有95%以上使用MySQL为主Oracle/NoSQL为辅
技术创新,变革未来
MySQL数据库体系架构介绍
目录 Contents
01 MySQL简介与主流分支版本 02 MySQL体系结构
01 MySQL简介与主流分支版本
01 MySQL 之父
1、开源MySQL数据库的创始成员 2、MySQL AB公司的首席技术官 3、MySQL数据库第一行代码的作者 4、MySQL数据库命名人 5、MariaDB创始人兼首席技术官; 6、独自完成撰写MySQL数据库服务器端95%的代码。
录。
• UNIX/Linux平台:
– /etc/f – /etc/mysql/f – SYSCONFDIR/f:通过CMake源码编译时SYSCONFDIR参数指定的路径 – $MYSQL_HOME/f:在MYSQL_HOME环境变量所在位置 – ~/f: ~表示当前用户根目录下
MySQL Enterprise
Percona Server
MySQL
MariaDB
Drizzle
号称最接近MySQL Enterprise发行版的 产品 XtraDB
更干净、快速的MySQL 不兼容MySQL
01 MySQL 行业前景
01 全球最大网站Top20
01 国内MySQL行业应用
① 互联网行业数据库MySQL市场第一
表结构定义文件
ibd
myi
ibdata* ....
03 MySQL文件结构
初始化参数文件
启动时读取各种选项,控制命令行要执行的功能、内存占用、执 行方式等
• Windows平台:
– C:\WINDOWS\my.ini – 系统盘的根目录保存的文件,即C:\my.ini – MySQL安装目录下,一般C:\Program Files\MySQL\MySQL5.6 Server 目
软件成本低 运维成本依赖数据规模,小规模数据库 运维成本低于Oracle,大规模数据库运维 成高低于Oracle。
互联网行业
技术掌控度高
03 MySQL体系结构
03 MySQL体系结构
连接层 SQL层
MySQL Server 层
存储引擎层
03 主流/常见存储引擎
存储引擎名 特点
应用场景
InnoDB MyISAM Memory Archive Blackhle CSV NDB
innodb_file_per_table 共享表空间(ibdata1)12M
独立表空间
如何收 缩共享 表空间?
03 QL文件结构
配置文件 日志类文件
f
error log General Query Log Slow Query Log binary log Relay log
frm
海量数据存储
并不存储数据,数据写入时只写binlog
用于binlog转储或与存储引 擎无关的性能瓶颈测试
以普通平面文件做为表文件,提供类似Oracle外部表的功 能
导入导出
集群存储引擎,提供类似RAC的架构
用于集群存储
选择建议:选择成熟度高的引擎
03 MyISAM引擎
1.不支持事务 2.表级锁定 3.读写互相阻塞 4.只会缓存索引 5.读取速度较快,占用资源相对少
03 MySQL文件结构
– 1、pid文件 – pid-file或pid_file 存在于datadir目录 – 2、套接字文件 – socket,用于本地连接 /tmp/mysql.sock
Oracle: 功能强大 保障体系充分,MOS成熟度高 BUG更新较快 并发机制粒度细,并发高
软件成本高 运维成本依赖数据规模,小规模数据库 运维成本远高于MySQL,大规模数据库 运维成高低于MySQL。
传统行业的霸主
技术掌控度低
MySQL: 功能略有不足 保障体系成熟度不如Oracle BUG更新不如Oracle 并发机制较粗,比Mongo类NoSQL要强, 并发性总体不如Oracle
MySQL5.6 MySQL5.7 MySQL8.0 (2016.8.25
DMR 、2018.4.8 GA)
1999 1979 TcX UNIREG
2000
2005.10
2008.1.16
1995 Sun Solaris
2009.4.20
2019
01 MySQL 主流分支
官方MySQL Monty团队迭代
④ MySQL数据库在互联网行业90%以上的使用比例,最典型的就是BAT了,近2年开始MySQL 扩展到金融、通信、生产制造、快速消费品零售、物流运输、医疗、政府等行业
01 MySQL 介绍
Oracle VS MySQL : 企业服务软件的开源与闭源之争
01 MySQL 介绍
Oracle VS MySQL : 企业服务软件的开源与闭源之争