mysql 查询语句_mysql之sql查询语句历程

be963a3e0dd4d7584289511ef14c4729.png

查询

mysql执行一条sql查询语句背后发生了什么呢?

我是李福春,我在准备面试,今天的题目是:

mysql的体系结构是怎样的?一条sql语句在mysql的体系结构中经历了什么?

答:

mysql体系结构

mysql的题解结构可以分成3个部分。列举如下:

mysql-client: 比如一个命令行,或者使用java的JDBC发送sql语句

mysql-server: 分为5个部分

连接器 (管理连接权限认证) 查询缓存 (命中则缓存起来) 分析器 (词法 语法分析) 优化器 (执行计划生成,索引选择) 执行器 (操作,返回结果)

mysql-存储引擎: 负责存储数据,提供读写接口(建表的时候指定MyISAM,InnoDB , Memory)

一条sql语句的执行过程

一条sql语句在mysql体系中的流转过程:

1,连接器: 首先打开命令行,指令:mysql -h${ip} -P${port} -u${user} -p ,输入密码。 使用连接器连接服务端; 连接成功之后,权限修改不会影响当前连接,连接的有效期默认是8个小时; 连接之后,执行过程中使用内存会持续增加,应该定时重置连接状态,防止oom;

2,查询缓存:如果查询比较频繁,按照key,value的方式放入缓存,命中缓存则直接返回; 如果更新比较频繁,建议不要使用查询缓存,query_cache_type=demand ,然后如果需要,可以在select后面带上 SQL_CACHE ; mysql8.0之后移除了查询缓存;

3,分析器:解析语法和词法,如果语法错误,会直接给出提示;

4,优化器:比如join语句执行方法的逻辑,如何选择索引等;

5, 执行器:核对执行权限,调用存储引擎的接口,按照语法循环执行,返回结果集。 可以观察 row_examined ,引擎扫描行数。

小结

本节介绍了mysql的体系结构。

然后跟踪了一条查询sql在体系结构中流转过程。

d63f8880caa0a74fe6a427eab0ae1bf2.png

脑图小结

原创不易,转载请注明出处,让我们互通有无,共同进步,欢迎多沟通交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值