首页 > 数据库技术 > 详细

MySQL/MariaDB数据库的查询缓存优化

时间:2019-10-29 21:42:02      阅读:107      评论:0      收藏:0      [点我收藏+]

      MySQL/MariaDB数据库的查询缓存优化

                            作者:尹正杰 

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

一.MySQL架构

技术分享图片

Connectors(MySQL对外提供的交互接口,API):
  Connectors组件,是MySQL向外提供的交互组件,如Python,Golang,Java,C++,Php等语言可以通过该组件来操作SQL语句,实现与SQL的交互。

Connection Pool(连接池组件):
  负责监听对客户端向MySQL Server端的各种请求,接收请求,转发请求到目标模块。每个成功连接MySQL Server的客户请求都会被创建或分配一个线程,该线程负责客户端与MySQL Server端的通信,接收客户端发送的命令,传递服务端的结果信息等。

SQL Interface(SQL接口组件):
   接收用户SQL命令,检查SQL语法是否正确,如DML,DDL和存储过程等,并将最终结果返回给用户。

Parser(查询分析器组件):
  首先分析SQL命令语法的合法性,并尝试将SQL命令分解成数据结构(将SQL指令转换成二进制格式来执行),若分解失败,则提示SQL语句不合理。

Optimlzer(优化器组件):
  对SQL命令按照标准流程进行优化分析,选择最佳的查询路径。

Caches & Buffers(缓存主件):
  缓存和缓冲组件

Pluggable Storage Engines(插件式存储引擎):
  通过插件式存储引擎访问真正存储数据,常见的存储引擎有MyISAM,InnoDB等。

File system(文件系统):
  存储引擎会帮我们和操作系统打交道,大家都直到数据持久化存储的依旧式在本地磁盘上。支持不同的文件系统,包括NTFS,EXT2/3/4,NFS,XFS等。

FIle & Logs:
  各种各样的数据库相关文件,如数据文件,日志文件等,如Redo(重做),Undo(撤销)等。

Management Service & Utilities(管理服务组件和工具组件):
  提供对MySQL的集成管理,如备份(Backup),恢复(Recovery),安全管理(Security)等

 

二.查询的执行路径

技术分享图片

MySQL 整个查询执行过程,总的来说分为 5 个步骤 :
  1.客户端向 MySQL 服务器发送一条查询请求
  2.服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段
  3.服务器进行 SQL解析、预处理、再由优化器生成对应的执行计划
  4.MySQL 根据执行计划,调用存储引擎的 API来执行查询
  5.将结果返回给客户端,同时缓存查询结果

 

三.查询缓存

 

MySQL/MariaDB数据库的查询缓存优化

原文:https://www.cnblogs.com/yinzhengjie/p/11761564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!