mysql基本架构_MySQL的基本架构

MySQL的基本架构

发布时间:2019-02-16 23:35,

浏览次数:178

, 标签:

MySQL

MySql的基本架构示意图如下:

一、MySQL总体上可分为Server层和存储引擎层。

Server层包括连接器、查询器、分析器、优化器、执行器等,涵盖 MySQL

的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是

InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。

二、Server层组成部分

连接器

连接器主要负责客户端与数据库服务的连接工作。可通过命令:show processlist

查询当前可用的连接进程的状态。客户端连接后,如果长时间没有通讯连接,则会自动断开连接,默认wait_timeout参数的值是8小时。

分析器

分析器主要是通过词法分析你的sql语句,用来告诉MySQL你要干什么。这个时候,如果你的sql语句有语法错误,就会报异常:“You have an

error in your SQL syntax”

优化器

优化器主要是通过你的sql语句,选择一种最优的方式,告诉MySQL该如何执行该语句。比如如下sql语句:

select * from t1 join t2 using(ID) where t1.a=10 and t2.b=20

那么优化器就会考虑是先通过t1.a=10查询t1的结果值,还是先通过t2.b查询t2的结果。优化器会自动判断出效率最高的一种执行方式,通知MySQL去执行。

执行器

执行器通过操作引擎,将sql语句执行的结果,返回给客户端。

查询缓存

查询缓存顾名思义是用来缓存结果数据的。为什么放到最后来说,是因为在MySQL8.0版本已经没有这个功能了。这个功能弊大于利,当查询结果命中查询缓存时,会直接返回结果。但大多数时候,我们的使用场景更新的频率会非常频繁,当某一个表中有一条更新数据时,会将该表的查询缓存结果全部清空,效率会非常低。可以使用在一些系统配置表,等更新不频繁的表中。当然我们可手动选择是否开启,参数是:query_cache_type.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

青年节寄语和新课程免费上架

大家好,确实好久没有写东西了,希望这篇推送不是用来提醒你取消关注哈。2020年这突如其来的疫情,打乱了我们的生活,也让很多人更加明白了生活的无常以及可贵吧,在此也真诚希望大家都要好好哒,不负韶华&#…

MySQL错误1264和1366_Mysql错误1366 - Incorrect integer value解决方法

由于这个数据库服务器存放的数据库比较多且都是小数据库,所以最初的时候是运行在windows服务器上的。前一段时间由于机房服务器要做调整,于是我便在一个夜深人静的夜晚对数据库进行的迁移及前台应用程序进行了调整,调整结束后测试应用均可以正…

从堆里找回“丢失”的代码相关命令简介

前言 在上一篇文章中,我们主要使用了三个命令 !address,s,.writemem 把丢失的代码成功的保存到了文件中。本文简单介绍一下上文用到的这三个命令。windbg 中的地址范围语法 很多命令都会用到 地址范围。比如 s 命令,.writemem 命令…

mysql 3t_编译安装mysql

编译安装mysql1 查找系统是否安装了myqlrpm -q mysql mysql-server1.1如果安装了。就删除sudo yum -y remove mysql mysql-serversudo rm -rf /etc/my.cnf2 安装依赖sudo yum install ncurses-devel -ysudo yum install libaio-devel -ysudo yum install bison -ysudo yum inst…

慎用ToLower和ToUpper,小心把你的系统给拖垮了

不知道何时开始,很多程序员喜欢用ToLower,ToUpper去实现忽略大小写模式的字符串相等性比较,有可能这个习惯是从别的语言引进的,大胆猜测下是JS,为了不引起争论,我指的JS是技师的意思~一:背景1. …

mysql 2008 日_SQL2008 的 日期数据类型

摘要你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQL Server 2008的介绍中,微软介绍了一些新的日期数据类允许你只存储一个日期、更高精度的时间值等。这些新的数据类型为你存储日期和时间相关…

别了,JavaScript;你好,Blazor

Web开发与JavaScript开发向来是同义词。直到WebAssembly的横空出世,WebAssembly (Wasm)是一种在浏览器中可以执行的二进制指令。WebAssembly 的 官方工具链 能够编译 C/C 代码,但许多社区也提供了不同语言的编译器,如 Rust,Python…

[Java基础]接口组成(默认方法,静态方法,私有方法)

默认方法: 代码如下: package MyInterfacePack;public interface MyInterface {void show1();void show2();// void show3();public default void show3(){System.out.println("show3");};}package MyInterfacePack;public class MyInterfaceImplOne implements …

linux jdk1.7 tomcat mysql_Linux环境搭建 jdk+tomcat+mysql

好久之前搭建的,现在记录下 防止下次配置去找安装jdk(jre也行),tomcat MySQL一、jdk安装及环境变量配置:我是用 jdk-8u191-linux-x64.tar.gz 安装的安装之前提前下载好 jdk版本 看你用什么版本吧 都一样的步骤 按照下面的步骤操作 要确保完全是一个新环境…

Eight HDU - 1043(八数码+搜索)

题意: 就是还原八数码。输出操作。 题目: The 15-puzzle has been around for over 100 years; even if you dont know it by that name, youve seen it. It is constructed with 15 sliding tiles, each with a number from 1 to 15 on it, and all …

开源 一套 Blazor Server 端精致套件

Blazor 作为一种 Web 开发的新技术已经发展有一段时间了,有些人标称 无 JS 无 TS,我觉得有点误导新人的意味,也有人文章大肆宣传 Blazor 是 JavaScript 的终结者,是为了替代 JavaScript 而生的,我认为这些言论都太激进…

[Java基础]函数式接口

代码如下: package MyInterfacePack01;FunctionalInterface public interface MyInterface {void show(); }package MyInterfacePack01;public class MyInterfaceDemo {public static void main(String[] args){MyInterface my ()->System.out.println("hello world&q…

mysql单库用户隔离_Mysql数据库隔离级别

数据库事务四大特性(ACID)原子性(Atomicity)原子性是指事务中的操作要么全部成功,要么失败回滚。一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。拿转…

Tree Cutting POJ - 2378(树形DP)

题意:有n个谷仓有n-1条路连接,问最少删除哪几个点才能使得删除点后得到的连通图的加点数不大于n/2. 分析:求树的重心的变形题,poj3107的简单版,一遍dfs从叶子到根转移找出找到以每个节点为根的子树的结点数&#xff0…

从零搭建分布式文件系统MinIO比FastDFS要更合适

前两天跟大家分享了一篇关于如何利用FastDFS组件来自建分布式文件系统的文章,有兴趣的朋友可以阅读下《用asp.net core结合fastdfs打造分布式文件存储系统》。通过留言发现大家虽然感兴趣,但是都觉得部署比较麻烦。的确,fastdfs的部署很繁琐&…

ember.js mysql_用AWS部署ember.jspadrino应用系列之一

aws提供了一年免费试用服务。这里,记录下,配置aws和部署开源cms程序——维卡币操盘手的整个过程。主要内容包括:EC2实例的创建和设置——ruby环境和nginx配置,部署ruby应用。RDS实例的创建和使用——mysql数据库参数组的使用。S3库…