mysql体系结构

带你认识MySQL之MySQL体系结构

Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的

最近一直在忙项目,各种加班加点,项目上线,渐渐的没有了学习的时间。这不,刚这几天才能抽出点时间,忙里偷闲,正在看一本数据库的书籍,相信很多小伙伴们也都看过 — — 《MySQL 技术内幕:InnoDB 存储引擎》。这本书很详细的讲述了 MySQL 的设计思想,体系结构,存储引擎,索引,事务,以及对性能的调优等。当然,现在我也是刚刚看了一部分,至于现在写这篇文章,主要是为了记录一下我的学习历程,并且和大家分享一些新的东西。

威尼斯人棋牌 1 

背景

至于背景嘛,这里就不多说了,如果感兴趣的话,还是推荐大家看一看这本书的。那么现在嘛,先了解一下 MySQL 的体系结构也不错,没准还可以拿出来炫耀一下(纯属忽悠)。

1 Connectors指的是不同语言中与SQL的交互

概念

在说体系结构之前,先说两个名词,而且是在数据库领域里很常见的两个词:“数据库”和“数据库实例”。
我想,小伙伴们肯定都知道这两个名词的,而且有时候还经常会区分不出来。那么,什么是“数据库”?什么又是“数据库实例”呢?下面我就详细跟大家说说。
首先说“数据库”,数据库是物理操作系统文件或其他形式的文件类型的集合。在 MySQL 中,数据库文件可以是 frm、myd、myi、ibd 结尾的文件。
然后说“数据库实例”,数据库实例是由数据库后台进程/线程以及一个共享内存区组成。共享内存可以被运行的后台进程/线程所共享。需要注意的是,数据库实例才是真正用来操作数据库文件的。
这两个词有时可以互换使用,但两者的概念完全不同。在 MySQL 中,实例和数据库通常关系是一 一对应的,即一个实例对应一个数据库,一个数据库对应一个实例。但是,在集群情况下,可能存在一个数据库可被多个实例使用的情况。

威尼斯人棋牌 2

体系结构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
威尼斯人棋牌 3

MySQL 由以下几部分组成:
Connectors:不同语言中与 SQL 的交互
威尼斯人棋牌 4

max_connections:就是整个MySQL实例的最大连接数限制 max_user_connections:是单个用户的最大连接数,这里未指明是哪个用户,是任意一个用户。
Management Serveices & Utilities:系统管理和控制工具
备份和恢复的安全性,复制,集群,管理,配置,迁移和元数据。
Connection Pool:连接池
进行身份验证、线程重用,连接限制,检查内存,数据缓存;管理用户的连接,线程处理等需要缓存的需求。
威尼斯人棋牌,SQL Interface:SQL 接口
进行 DML、DDL,存储过程、视图、触发器等操作和管理;用户通过 SQL 命令来查询所需结果。
Parser:解析器
查询翻译对象的特权;SQL 命令传递到解析器的时候会被解析器验证和解析。
Optimizer:查询优化器
访问路径的统计数据;
威尼斯人棋牌 5

在 MySQL 优化语句过程中,可以通过设置 optimize_switch 控制优化行为。在生产环境上,某时间段 MySQL 服务器压力特别大,load 一度达到了 100,查询发现数据库中有大量的 sql 语句 state 状态 result sorting ,result sorting 这种排序特别消耗 cpu 和内存资源。抽取其中的一条 sql 查看执行计划。
Cache 和 Buffer:查询缓存
全局和引擎特定的缓存和缓冲区;
威尼斯人棋牌 6

Engine:存储引擎
威尼斯人棋牌 7

MySQL 的 Windows 版本默认存储引擎为 InnoDB,InnoDB 支持事务,并且提供行级的锁定。

max_connections:就是整个MySQL实例的最大连接数限制   

结束语

想要认识 MySQL,这里仅仅是个开始,在后续的学习中,我还会不定时的跟大家分享,同时,小伙伴们有新的想法也可以跟我一块交流交流。

http://www.bkjia.com/Mysql/1041377.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/1041377.htmlTechArticle带你认识MySQL之MySQL体系结构 序 最近一直在忙项目,各种加班加点,项目上线,渐渐的没有了学习的时间。这不,刚这几天才能抽出点时间...

max_user_connections:是单个用户的最大连接数,这里未指明是哪个用户,是任意一个用户。

2 Management Serveices & Utilities: 系统管理和控制工具

 备份和恢复的安全性,复制,集群,管理,配置,迁移和元数据。

 

3 Connection Pool: 连接池。

进行身份验证、线程重用,连接限制,检查内存,数据缓存;管理缓冲用户连接,线程处理等需要缓存的需求

 

4 SQL Interface: SQL接口。

进行 DML、DDL,存储过程、视图、触发器等操作和管理;用户通过 SQL 命令来查询所需结果。

 

5 Parser: 解析器。

 查询翻译对象的特权。SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。

主要功能:

a . 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的 

b.  如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的

 

6 Optimizer: 查询优化器。

SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。

用一个例子就可以理解: select uid,name from user where gender = 1;

这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤

这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤

将这两个查询条件联接起来生成最终查询结果

威尼斯人棋牌 8

在 MySQL 优化语句过程中,可以通过设置 optimize_switch 控制优化行为。在生产环境上,某时间段 MySQL 服务器压力特别大,load 一度达到了 100,查询发现数据库中有大量的 sql 语句 state 状态 result sorting ,result sorting 这种排序特别消耗 cpu 和内存资源。抽取其中的一条 sql 查看执行计划。

7 Cache和Buffer: 查询缓存。

全局和引擎特定的缓存和缓冲区。

如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。

这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

威尼斯人棋牌 9

本文由威尼斯人棋牌发布于计算机教程,转载请注明出处:mysql体系结构