一、第一节:一条sql查询语句是怎样执行的

5.5.5版本以后,默认使用存储引擎为InnoDB

不使用查询缓存,MySQL8.0没有查询缓存这个功能

总体来说:MySQL分为service层和存储引擎层

1)service层包括:连接器、分析器、优化器、执行器;它涵盖了MySQL大多数核心服务功能,以及所有的内置函数(日期、时间、数学和加密函数),所有跨存储引擎都在这一层实现(触发器、存储过程、视图)

2)存储引擎负责数据的存储和提取,其架构模式是插件式的,包含:InnoDB、MyISAM、Memory等5.5.5版本以后,默认使用存储引擎为InnoDB,选择其他引擎可以在建表时进行选择,不同的存储引擎用的是同一个server层

mysql> select * from T where ID=10;

(1)连接器:建立连接、获取权限、维持和管理连接

mysql -h$ip -P$port -u$user -p

如果通过则开始验证权限:否则 access denied for user

建立连接之后,会保持连接,处于空闲的状态,使用 show processlist 可以查看,如果长时间没动静,连接器会自己断开,wait_timeout控制,默认为8小时,

长连接是如果连接过后,客户端一直有请求,则一直使用同一个连接,短连接则是每次执行完很少的几次查询之后就断开了,下次查询再重新进行连接;

全使用长连接之后,会大量占用内存,导致oom,解决方案:定期断开长连接,5.7版本之后,执行一个比较大的操作之后,使用mysql_reset_connection初始化连接资源

(2)查询缓存:MySQL接收到查询缓存之后,会先到缓存看是否执行过相同语句,击中则返回,否则继续往下

一般都不建议使用缓存,8.0之后直接抛弃了这一部分的功能,why?:

查询缓存实效非常频繁,只要对一个表有更新操作,该表的缓存就会被清空;query_cache_type 设置为DEMAND,这样的sql语句都不使用缓存;如需使用,如下:

mysql> select SQL_CACHE * from T where ID=10;

(3)分析器:检查语法,分析语句:

mysql> elect * from t where ID=1;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'elect * from t where ID=1' at line 1

注意near附近的提示查找到错误;

(4)优化器:当表有多个索引的时候,决定使用哪个索引,或者有多个表关联的时候,决定各个表的连接顺序

(5)执行器:当知道你需要做什么时,进入执行阶段,开始执行语句:

mysql> elect * from t where ID=1;

开始执行时,还会判断一下登录用户有没有这张表的查询权限 ,

慢数据中会看到rows_examined ,表示执行了多少次行扫描;

怎么做mysql查询系统_mysql数据库系统学习(一)---一条SQL查询语句是如何执行的?...相关推荐

  1. mysql查询前几笔sql语句_mysql开发常用的几条sql查询语句

    mysql开发常用的几条sql查询语句 有需要的朋友可参考一上. 1.计算年龄 如果你有一个人的生日而需要计算这个人的年龄,将下列语句中@dateofbirth替换为生日即可 代码如下 SELECT ...

  2. .sql文件如何执行_随手记 02 日志系统:一条SQL更新语句是如何执行的?

    上节系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的出合理模块. 连接器.分析器.优化器.执行器等功能模块,最后到达存储引擎. 一条SQL更新语句的执行流程 从一个表的一条sql语句说起 c ...

  3. 20200906——阅读 日志系统:一条SQL更新语句是如何执行的?

    前言 前面我们知道了,一条sql语句是如何执行的,并且介绍了执行过程中涉及到的模块. 一条语句运行,经过了连接器,分析器,优化器,执行器,最后到达存储引擎. 序言 : 复习 数据库如何创建 creat ...

  4. 讲mysql执行流程书籍_MySQL 基础架构 1. 一条SQL查询语句的执行过程(个人学习笔记)...

    MySQL的逻辑架构图: MySQL 大体分为 "server 层" 和 "存储引擎层" 两部分: Server 层 包括 连接器.查询缓存.分析器.优化器.执 ...

  5. 02 | 日志系统:一条SQL更新语句是如何执行的? 笔记(转)

    与查询流程不一样的是,更新流程还涉及两个重要的日志模块,它们正是我们今天要讨论的主角:redo log(重做日志)和 binlog(归档日志).如果接触 MySQL,那这两个词肯定是绕不过的,我后面的 ...

  6. 02 | 日志系统:一条 SQL 更新语句是如何执行的

      可能经常听 DBA 同事说,MySQL 可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个 ...

  7. 02 | 日志系统:一条SQL更新语句是如何执行的?

    一.吹牛逼

  8. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

  9. 当我们输入一条SQL查询语句时,发生了什么?

    我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题.同样,对于 MySQL 的学习也是这样.平时我们使用数据库,看到的通常都是一个整体.比如,你有个最简单 ...

最新文章

  1. 与MySQL传统复制相比,GTID有哪些独特的复制姿势?
  2. UI控件(UIToolbar)
  3. 学Java发展前景好的三个原因
  4. Performance Metrics(性能指标1)
  5. linux odbc连接数据库失败,在Linux中使用RODBC连接到SQL Server时出错
  6. Arcgis自下而上从左到右进行编号
  7. Android 音频开发(一) 基础入门篇
  8. 《编程之美》1.9:高效率的安排见面会的一个解法
  9. 4 大妙招,教你快速搞定复杂的系统编程!
  10. mysql instead of触发_Instead of触发器
  11. python能做什么工作-谁适合学Python?学了Python可以做什么工作?
  12. 你是否需要购买网站重构?
  13. 【转载】google搜索从入门到精通
  14. kindle的mobi格式的文件,怎么转换成txt文件供一版阅读器来使用?
  15. Multisim如何导入NPN,三极管9013
  16. 电能计量芯片应用心得之选型篇
  17. 为什么使用Stelnet与sftp协议,而不用telnet与ftp协议
  18. 免费https证书生成
  19. 烟花智能直播助手,直播带货必备爆单工具【直播助手脚本+技术教程】
  20. php realpath 缓存,PHP的Realpath Cache

热门文章

  1. nmap结果导出html,nmap的简单使用 - osc_ijgldkz9的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. 苹果计算机磁盘格式,苹果电脑如何完全写入NTFS格式磁盘
  3. python中的括号不是西文吗_二级Python---python语言的基本语法元素(Day1)
  4. 在linux安装不了apache,Apache 不能安装在linux?
  5. spark集群详细搭建过程及遇到的问题解决(四)
  6. 一个古怪的VISTA网络问题解决的坎坷经历
  7. javascript 手机手势动作touch触屏原理分析
  8. jquery|javascript 回车事件
  9. Unraveling the JPEG file
  10. 【CH4302】Interval GCD