赞
踩
目录
MySQL 由瑞典MysqlAb 公司开发,属于 Oracle旗下产品。MySQL 是当前最流行的关系型数据库管理系统。京东、阿里、等互联网大厂基本都是使用Myql数据库进行业务数据的存储。
MySQL的版本众多,目前最新版本为MySQL8,但绝大部分厂商当前主要是用还是MySQL5.7.32左右的版本。
除此之外,MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是Mysql诞生出了很多分支和相关替代产品
MySQL 变种有好几个,主要有三个久经考验的主流变种:Percona Server, MariaDB 和 Drizzle。它们都有活跃的用户社区和某种程度上的商业支持,均由独 立的服务供应商支持。
Drizzle 是真正的 MySQL 分支,而且是完全开源的产品,而非只是个变种或 增强版本。它并不与 MySQL 兼容不能简单地将 MySQL 后端替换为 Drizzle。
Drizzle 与 MySQL 有很大差别,进行了一些重大更改,甚至 SQL 语法的变化 都非常大,设计目标之一是提供一种出色的解决方案来解决高可用性问题。在实 现上,Drizzle 清除了一些表现不佳和不必要的功能,将很多代码重写,对它们进 行了优化,甚至将所用语言从 C 换成了 C++。
此外,Drizzle 另一个设计目标是能很好的适应具有大量内容的多核服务器、 运行 Linux 的 64 位机器、云计算中使用的服务器、托管网站的服务器和每分钟 接收数以万计点击率的服务器并且大幅度的削减服务器成本。
在 Sun 收购 MySQL 后,Monty Widenius ,这位 MySQL 的创建者,因不认同 MySQL 开发流程而离开 Sun。他成立了 Monty 程序公司,创立了 MariaDB。MariaDB 的目标是社区开发,Bug 修复和许多的新特性实际上,可以将 MariaDB 视为 MySQL 的扩展集,它不仅提供 MySQL 提供的所有功能,还提供其他功能。MariaDB 是 原版 MySQL 的超集,因此已有的系统不需要任何修改就可以运行。
诸如 Google ,Facebook 、维基百科等公司或者网站所使用了 MariaDB 。不过 Monty 公司不是以赢利为目的,而是由产品驱动的,这可能会带来问题,因为没 有赢利的公司不一定能长久维持下去。
由领先的 MySQL 咨询公司 Percona 发布,Percona 公司的口号就是“The Database Performance Experts” ,Percona 的创始人也就是《高性能 MySQL》书 的作者。
Percona Server 是个与 MySQL 向后兼容的替代品,它尽可能不改变 SQL 语法、 客户端/服务器协议和磁盘上的文件格式。任何运行在 MySQL 上的都可以运行在 Percona Server 上而不需要修改。切换到 Percona Server 只需要关闭 MySQL 和启 动 PerconaServer ,不需要导出和重新导入数据。
Percona Server 有三个主要的目标:透明,增加允许用户更紧密地查看服务 器内部信息和行为的方法。比如慢查询日志中特别增加的详细信息;性能, Percona Server 包含许多性能和可扩展性方面的改进,还加强了性能的可预测性 和稳定性。其中主要集中于 InnoDB;操作灵活性,Percona Server 使操作人员和 系统管理员在让 MySQL 作为架构的一部分而可靠并稳定运行时提供了很多便利。
一般来说,Percona Server 中的许多特性会在后来的标准 MySQL 中出现。 国内公司阿里内部就运行了上千个 Percona Server 的实例。
官方给出的Mysql基础体系架构图如下:
可以看出 MySQL 最上层是连接组件。下面服务器是由连接池、管理工具和服务、SQL 接口、解析器、优化器、缓存、存储引擎、文件系统组成。
连接池:由于每次建立建立需要消耗很多时间,连接池的作用就是将这些连 接缓存下来,下次可以直接用已经建立好的连接,提升服务器性能。
管理工具和服务:系统管理和控制工具,例如备份恢复、Mysql 复制、集群 等
SQL 接口:接受用户的 SQL 命令,并且返回用户需要查询的结果。比如 select from 就是调用 SQL Interface
解析器:SQL 命令传递到解析器的时候会被解析器验证和解析。解析器主要 功能:
a . 将 SQL 语句分解成数据结构,并将这个结构传递到后续步骤,以后 SQL 语句的传递和处理就是基于这个结构的
b. 如果在分解构成中遇到错误,那么就说明这个 sql 语句是不合理的
优化器:查询优化器,SQL 语句在查询之前会使用查询优化器对查询进行优 化。
缓存器: 查询缓存,如果查询缓存有命中的查询结果,查询语句就可以直 接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key 缓存, 权限缓存等。
存储引擎、文件系统的作用,后面会细讲。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。