当前位置: 首页 > news >正文

深入理解MySQL_1 MySQL系统架构

作者:田超凡

1 数据库、数据库管理软件和数据库实例

数据库:按照数据结构来组织、存储和管理数据的仓库

数据库管理软件(RDBMS):用来管理数据库的软件,强调软件。

数据库实例:每次启动数据库软件,都会在内存中运行一个独立进程,用来操作数据,这个正在运行的进程就是一个数据库实例。可以在一台电脑上启动多个数据库实例,监听在不同的端口即可。

 

2 MySQL系统架构

2.1 MySQL对外提供交互的接口(Connectors)

编程语言可以通过该组件来操作SQL语句,实现与SQL的交互,通过客户端/服务器通信协议与MySQL建立连接。

 

2.2 管理服务和工具组件(Management Service & Utilities)

提供MySQL的各项服务组件和管理工具,如备份(Backup),恢复(Recovery),安全管理(Security)等功能。

 

2.3 连接池(Connection Pool)

负责监听客户端向MySQL Server端的各种请求,接收请求,转发请求到目标模块。

 

2.4 SQL接口(SQL Interface)

接收用户SQL命令,如DML,DDL和存储过程等,并将最终结果返回给用户。

 

2.5 解析器(Parser)

首先分析SQL命令语法的合法性,并进行抽象语法树解析,如果sql有语法错误,会抛出异常信息。

 

2.6 优化器(Optimizer)

对SQL命令按照标准流程进行优化分析,mysql会按照它认为的最优方式进行优化,选用成本最小的执行计划。

 

2.7 缓存和缓冲(Caches & Buffers)

缓存sql文本及查询结果,如果运行完全相同的SQL,服务器直接从缓存中取到结果,而不需要再去解析和执行SQL。如果表中任何数据或是结构发生改变,那么使用这个表的所有缓存查询将不再有效,查询缓存中相关条目被清空。

MySQL8.0开始取消了查询缓存,原因如下:

(1)查询缓存会对每条接收到的SELECT类型的SQL进行hash计算,然后查找这个查询的缓存结果是否存在。在高并发场景下,hash计算和查找所带来的开销过大。

(2) SELECT语句的字符大小写、空格或者注释的不同,Query Cache都会认为是不同的查询(因为他们的hash值会不同)

(3) 当向某个表写入数据的时候,必须将和这个表相关的所有缓存设置为失效,如果缓存内容很多,则消耗也会很大,可能使系统僵死,因为这个操作是靠全局锁操作来保护的。

 

2.8 MySQL存储引擎

MySQL存储引擎分为官方存储引擎和第三方存储引擎,比较常用的存储引擎包括InnoDB存储引擎,MyISAM 存储引擎和Memory存储引擎。

http://www.dtcms.com/a/424114.html

相关文章:

  • C++之友元函数与前向引用
  • 01_系统架构设计
  • 解决 jenkins 用户 SSH 连接目标服务器时的 Permission denied 问题
  • 【html】canvas实现一个时钟
  • 怎么用支付宝做发卡网站优质的seo网站排名优化软件
  • 论文阅读四-第三章
  • 工程网站模板wordpress查看
  • openai代码研读:OpenAI Python SDK 中 AsyncOpenAI 类的定义
  • 广东公诚通信建设监理有限公司网站建设内容管理网站的目的
  • 乐平市网站建设企业运营数据分析报告
  • 一张草稿纸
  • GSPO论文阅读
  • 做设计去哪个网站找素材怎么推广效果好呢网站怎么做推广
  • 电子商务网站开发分几个模块wordpress阅读数
  • 做自媒体一般都注册几个网站网站建设的可用性
  • 南通网站快速收录网站备案 万网
  • 网站加速器免费永久企业网站 优秀
  • 做模板网站价格银川专业做网站
  • QML 核心概念:构建动态 UI
  • 雅江网站建设会外语和做网站
  • vim删除文本文件内容
  • 嵌入式系统应用--TFTLCD 显示实验 4 之内存搬运
  • 网站内部优化是什么河北省住房和城乡建设部网站
  • 单位建设网站用交印花税吗网页设计与制作教程知识点总结
  • 广州途道信息科技有限公司企业白皮书:创新驱动增长,责任铸就品牌
  • 百度公司做网站吗如何上传文件到自己的网站
  • 网站优化公司哪家好如何建网站和推广
  • 做动效很好的网站建筑建材网站建设
  • 月刊可以用什么网站做网页开发软件有哪些
  • Coze源码分析-资源库-编辑插件-后端源码-领域/数据访问层