文档章节

Mysql 体系结构

六飞鞋影魔
 六飞鞋影魔
发布于 2017/04/06 15:12
字数 419
阅读 3
收藏 0
点赞 0
评论 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解析、生成语法树)、查询是否命中缓存、优化执行、执行(返回结果集)

© 著作权归作者所有

共有 人打赏支持
六飞鞋影魔
粉丝 1
博文 11
码字总数 5446
作品 0
深圳
程序员
mysql体系结构理解与分析

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

tianya1993 ⋅ 2017/05/15 ⋅ 0

【揭秘】数据库面试葵花宝典,让你面试一次过

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

superZS ⋅ 2017/07/18 ⋅ 0

MySQL数据库的性能的影响分析及其优化

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

Panda_Jerry ⋅ 2017/11/04 ⋅ 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/24 ⋅ 0

MYSQL数据库的套接字文件,pid文件,表结构文件

socket文件:当用Unix域套接字方式进行连接时需要的文件。 pid文件:MySQL实例的进程ID文件。 MySQL表结构文件:用来存放MySQL表结构定义文件。 套接字文件 Unix系统下本地连接MySQL可以采用...

jephon ⋅ 2017/01/15 ⋅ 0

mysql体系结构之不得不说

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

落叶刀 ⋅ 2015/09/18 ⋅ 0

MySQL体系结构笔记

MySQL的体系结构是一个由多个子系统构成的层次化系统,它封装着SQL接口,查询解析器,查询优化器和查询执行引擎,缓存/缓冲机制以及一个插件式存储引擎,具体如下图所示: Connectors:一些用来与...

余二五 ⋅ 2017/11/15 ⋅ 0

MySQL Cluster 7.1.26 发布

MySQL Cluster 7.1.26 发布了,下载地址: http://dev.mysql.com/downloads/cluster/7.1.html Oracle 继续没有提供该版本的改进说明。 MySQL Cluster 是一种技术,该技术允许在无共享的系统中...

oschina ⋅ 2013/01/26 ⋅ 1

认识MySQL---JC MySQL系列(一)

(一)认识MySQL MySQL数据库是开放源代码的关系型数据库。目前,它可以提供的功能有:支持sql语言、子查询、存储过程、触发器、视图、索引、事务、锁、外键约束和影像复制等。 同Oracle和S...

jk88 ⋅ 2013/05/24 ⋅ 0

数据库的选择(二)

数据库如何选择 常用的数据库一般是分为五种:(一)、Access(二)SqlServer(三)MySQL(四)Oracle(五)SQLite,那么,用户想做一个网站,到底哪一种数据库是适合自己的呢?以下给大家介绍一下常用的...

-wangming- ⋅ 2015/09/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CENTOS7防火墙命令记录

安装Firewall命令: yum install firewalld firewalld-config Firewall开启常见端口命令: firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-po......

cavion ⋅ 37分钟前 ⋅ 0

【C++】【STL】利用chromo来测量程序运行时间与日志时间打印精确到微秒

直接上代码吧,没啥好说的。头疼。 #include <iostream>#include <string>#include <ctime>#include <sstream>#include <iomanip>#include <thread>#include <chrono>using ......

muqiusangyang ⋅ 40分钟前 ⋅ 0

Mac环境下svn的使用

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简...

故久呵呵 ⋅ 49分钟前 ⋅ 0

破解公司回应苹果“USB限制模式”:已攻破

本周四,苹果发表声明称 iOS 中加入了一项名为“USB 限制模式”的功能,可以防止 iPhone 在连接其他设备的时候被破解,并且强调这一功能并不是针对 FBI 等执法部门,为的是保护用户数据安全。...

六库科技 ⋅ 51分钟前 ⋅ 0

MyBtais整合Spring Boot整合,TypeHandler对枚举类(enum)处理

概要 问题描述 我想用枚举类来表示用户当前状态,枚举类由 code 和 msg 组成,但我只想把 code 保存到数据库,查询处理,能知道用户当前状态,这应该怎么做呢?在 Spring 整合MyBatis 的时候...

Wenyi_Feng ⋅ 今天 ⋅ 0

synchronized与Lock的区别

# <center>王梦龙的读书笔记第一篇</center> ## <center>-synchronized与Lock的区别</centre> ###一、从使用场景来说 + synchronized 是能够注释代码块、类、方法但是它的加锁是和解锁使用一......

我不想加班 ⋅ 今天 ⋅ 0

VConsole的使用

手机端控制台打印输出,方便bug的排查。 首先需要引入vconsole.min.js 文件,然后在文件中创造实例。就能直接使用了。 var vConsole = new VConsole(); vConsole的文件地址...

大美琴 ⋅ 今天 ⋅ 0

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 今天 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 今天 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部