文档章节

Mysql 体系结构

六飞鞋影魔
 六飞鞋影魔
发布于 2017/04/06 15:12
字数 419
阅读 4
收藏 0

Mysql 体系结构

  • Mysql 由:SQL接口(连接池)、解析器、优化器、查询缓存、存储引擎 等组成

SQL接口、连接池

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

  • 连接池:管理用户的连接,线程管理等
mysql> show variables like '%connection%';
+--------------------------+-----------------+
| Variable_name | Value |
+--------------------------+-----------------+
| character_set_connection | utf8 |
| collation_connection | utf8_general_ci |
| max_connections | 151 |
| max_user_connections | 0 |
+--------------------------+-----------------+

解析器

  • Mysql将用户的查询语句进行验证与解析,并创建一个内部的数据结构–语法树
  • 解析器由Lex和Yacc实现
mysql> show variables like 'optimizer_%';
+------------------------+------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+------------------------+------------------------------------------------------------------------------------------------------------------------+
| optimizer_prune_level | 1 |
| optimizer_search_depth | 62 |
| optimizer_switch | index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on |
+------------------------+------------------------------------------------------------------------------------------------------------------------+

优化器

  • 访问路径的统计数据,进行各种优化,如:重写查询、选择读取表的顺序以及索引等

查询缓存

  • 存储select 语句以及相应的结果集。在解析查询之前服务器会先访问查询缓存。如果命中缓存最不会进行解析、优化
    直接将结果返回

  • 一般的缓存有:表缓存、记录缓存、key缓存、权限缓存等
mysql> show variables like '%query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 16777216 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+----------+

存储引擎

  • 存储引擎是Mysql与文件打交道的子系统。Mysql的存储引擎是插件式的,可根据MySql AB公司文件访问层来定制一种
    访问机制(这种访问机制就叫存储引擎)

    SQL执行过程

>接受命令(用户验证、资源申请)、解析命令(SQL解析、生成语法树)、查询是否命中缓存、优化执行、执行(返回结果集)

© 著作权归作者所有

共有 人打赏支持
上一篇: nginx 进程管理
下一篇: zephir简介
六飞鞋影魔
粉丝 1
博文 11
码字总数 5446
作品 0
深圳
程序员
私信 提问
mysql体系结构理解与分析

接触mysql有一年多了,但始终是低端用户状态,对其原理性的东西研究不够,不少mysql资料书中提到mysql体系结构,包含各个模块的功能特性,理解此功能特性,会刚好的帮助我们学习mysql数据库。...

tianya1993
2017/05/15
0
0
【揭秘】数据库面试葵花宝典,让你面试一次过

大家可以叫我老张,网名superZS!一直从事数据库行业10余年,工作于某数据库服务公司,兼数据库资深讲师,就面试中大家遇到的比较困惑的数据库问题,和刚进入数据库领域的同学们,我在这里给...

superZS
2017/07/18
0
0
MySQL数据库的性能的影响分析及其优化

MySQL数据库的性能的影响 一. 服务器的硬件的限制 二. 服务器所使用的操作系统 三. 服务器的所配置的参数设置不同 四. 数据库存储引擎的选择 五. 数据库的参数配置的不同 六. (重点)数据库的...

Panda_Jerry
2017/11/04
0
0
MySQL Workbench 5.1 在 Mac OS 上的第一个测试版发布

这是Mac OS上的第一个Alpha 测试版本,目前只支持 Intel 的体系结构,界面还是相当漂亮的: 下载体验:ftp://ftp.mysql.com/pub/mysql/download/gui-tools/mysql-workbench-5.1.6-osx10.5-i6...

红薯
2008/12/25
437
0
mysql体系结构之不得不说

mysql数据库和实例。 数据库:物理操作系统文件或其它形式文件类型的集合。记住数据库是文件! 实例:mysql数据库后台线程以及一个共享内存区组成。记住是程序内存和线程! mysql是个一个单进...

落叶刀
2015/09/18
115
0

没有更多内容

加载失败,请刷新页面

加载更多

对接比特币钱包的PHP开发包

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性: 利用第三方服务获取指定地址的utxo集合 离线生成消费裸...

汇智网教程
7分钟前
0
0
【自用】 VHD to VHDX

VHDX: 在VHD 2TB 的基础上提供 64TB的容量。 支持逻辑扇区大小为 4KB,和每块的大小为 256MB,来优化虚拟磁盘性能。 比VHD提供更高的安全性、可靠性和性能。 convert-VHD –path d:\Hyper-v...

Tensor丨思悟
20分钟前
0
0
30 岁转行做Python开发晚吗?而且是零基础

最近有小伙伴问小编,30 岁转行做Python开发晚吗? 小编想说,其实无论男女,只要想学,有这个动力,就直接去行动。无论年龄,无论性别,只要你想一直勇往直前,那么想做的就去做吧~这里有一...

糖宝lsh
30分钟前
7
0
详解Spring中的Profile

前言 由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息、ZooKeeper的信息、数据库连接、Redis服务器地址等),导致实际现网的配置参数与测试服务器参数混淆...

watermelon11
45分钟前
4
0
phper必知必会(二)

  1.说说你对进程,线程以及协程的理解      进程:是系统进行资源分配和调度的基本单位,是基本操作系统结构的基础。进程是程序基本执行的实体。进程与进程之间是独立的,拥有完全独立...

SEOwhywhy
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部