一条SQL执行的过程

查看当前数据库线程数目
复制代码
SHOW GLOBAL STATUS like 'Thread%';
  • Threads_cached:被缓存的线程个数。
  • Threads_connected:当前正在连接的线程个数,详细指令:SHOW FULL PROCESSLIST。
  • Threads_created:总共创建的线程个数。
  • Threads_running:当前正在执行的线程个数据。
查看数据库所有的连接
复制代码
SHOW FULL PROCESSLIST
  • 可展示正在连接的线程个数,展示字段有:Id, User, Host, db, Command, Time, State, Info;可通过kill Id来杀死某个连接。
查询最大等待时间
复制代码
show GLOBAL VARIABLES like 'wait_timeout';
查询最大连接数
复制代码
show VARIABLES like 'max_con%';
  • max_connect_errors:负责记录过多尝试失败的客户端IP,是MySQL的防护机制,防止暴力破解密码的情况。
  • max_connections:最大链接的线程数。

MySQL会话级别

  • session:代表一个会话,即客户端和服务端的连接为一个session,设置session变量后,只对当前session之后的连接生效,之前的连接无效。
  • global:全局会话,对所有的session的所有连接都生效。
查询是否开启缓存
复制代码
show VARIABLES like 'query%';
  • 在MySQL中,缓存的出现几乎无用,因为使用之前的缓存,则必须sql一模一样,并且涉及到的表不能出现增、删、改操作,否则缓存立即清空。
  • 在MySQL8.0之后,移除了缓存功能。并且缓存默认不开启。
SQL执行的过程
  • 客户端链接:客户端发起链接请求,服务端检查链接请求的口令,成功则允许链接;TCP链接成功之后,客户端则可以向服务端发起CRUD请求。

  • 查询缓存:如果用户开启缓存,则查询过的SQL将以map的形式存储,并且包含有该条语句的相关权限;如果命中查询缓存,则校检权限,满足后返回。

  • 解析器:进行词法(对每个单词解析)和语法(对关键字、表、域解析)的解析,生成解析树。

  • 预处理器:进行语义解析(如表是否存在等)和权限解析(提交请求的用户是否有权限),生成解析树。

  • 优化器:由于每条SQL的执行过程有很多种,MySQL内置的规则将计算以何种方式执行最优,并返回最优执行计划。(只是内置的规则认为最优,并不代表实际上最优)。

  • 执行器:执行器以执行计划为参数,调用存储引擎(实际上不通的存储引擎,提供了统一的API),调用获取到结果后,如开启缓存,一边写入缓存一边返回给用户。当然,数据的修改新增删除等,实际上是在数据库内置的buffer pool中实现的。

    复制代码
    buffer pool
    	使用LRU算法淘汰,buffer pool有很多的页,一个页大小为4kb,为了使其中的内容写入磁盘,加入了redo log文件,以便故障时恢复至内存,再同步到磁盘。
    	redo log重做日志:文件用于崩溃故障恢复,不能用作数据恢复,采用顺序IO操作。
    	binlog文件可解析后,用作数据恢复。
    	undo log回滚日志:修改数据记录之前的状态,以便发生故障恢复,
  • 存储引擎:不通的存储引擎,数据再磁盘上的组织和存储方式不同

  • 磁盘:数据实际存储的地址空间

相关推荐
煎蛋学姐6 分钟前
SSM学生会综合管理系统8berj(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·计算机毕业设计·ssm 框架·学生会综合管理系统
YongCheng_Liang40 分钟前
MySQL 高级特性深度解析:从索引优化到高可用架构
运维·数据库·mysql
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-考试模块前端页面交互设计及优化
java·数据库·人工智能·spring boot
dblens 数据库管理和开发工具1 小时前
QueryNote V1.2 发布:从个人思考空间,迈向团队协作与内容交付
数据库·dblens
砚边数影1 小时前
Java基础强化(三):多线程并发 —— AI 数据批量读取性能优化
java·数据库·人工智能·ai·性能优化·ai编程
coding者在努力1 小时前
SQL使用NOT EXITS实现全称量词查询(数据库查询所有)详细讲解和技巧总结
网络·数据库·sql
航Hang*1 小时前
第3章:复习篇——第4节:创建、管理视图与索引---题库
网络·数据库·笔记·sql·学习·mysql·期末
李慕婉学姐2 小时前
Springboot旅游景点管理系统2fj40iq6(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
早日退休!!!2 小时前
Roofline模型核心原理:延迟、吞吐与并发的底层逻辑
大数据·网络·数据库
砚边数影2 小时前
KingbaseES基础(二):SQL进阶 —— 批量插入/查询 AI 样本数据实战
java·数据库·人工智能·sql·ai