数据库执行查询请求的过程

本文涉及的产品
PolarDB Agent Flow,2核4GB
RDS AI 助手,专业版
PolarSearch,搜索节点 4核8GB
简介: 客户端通过TCP连接请求服务端,经连接器验证主机、用户名密码后建立连接。服务端为客户端创建进程交互,并缓存连接以复用。8.0前支持查询结果缓存,后因维护成本高被移除。SQL语句经分析器解析后,由优化器选择最优执行方案,执行器校验权限并调用存储引擎接口获取数据。

客户端请求:建立TCP连接。 使用连接器进行连接管理:此时服务端会对客户端发来数据携带的主机信息、用户名、密码等信息进行验证,如果认证失败就会拒绝连接。(连接器) 注: 当客户端连接服务端进程后,服务端进程会为其创建进程专门用于交互,当断开连接后,服务端不会立即进行销毁,而是会进行缓存,用于下次新的连接,这样可以不用频繁的创建和销毁线程,节省开销。 缓存查询:服务端会对之前的请求结果进行缓存,若存在缓存直接返回,否则继续执行下一步。维护缓存的代价较大,因此在8.0版本后已删除缓存。 语法解析:由于目前为止还未对文本解析,此时会对文本进行词法分析、语法分析、语义分析等过程,真正开始解析。(分析器) 查询优化:主要对执行的sql优化选择最优的执行方案。(优化器) 存储引擎:执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口。然后去引擎层获取数据返回,若开启查询缓存则会缓存查询结果。(执行器)

相关文章
|
6月前
|
SQL 存储 关系型数据库
数据库的行级锁与表锁
表锁无死锁,但并发低,读写互斥;行锁基于索引,支持高并发,但可能死锁。若SQL未走索引,行锁失效转为表锁。行锁适用于避免不可重复读,事务中增删改自动加排他锁,且不可锁定同一索引。
|
6月前
|
存储 人工智能 Cloud Native
加入我们,一起定义「Data x AI」的未来
我们在杭州、上海开放岗位。如果你准备好了,请加入我们,一起建造 AI 时代最重要的数据基础设施。
395 51
|
6月前
|
存储 缓存 关系型数据库
常见索引类型
本文档系统梳理了数据库索引的多维度分类:按存储结构分为聚簇与非聚簇索引,按约束性分为普通、唯一及主键索引,按字段数量分为单列与组合索引,按功能支持全文与空间索引,按底层结构涵盖B+树与哈希索引,详述其定义、适用场景及核心特性。
|
6月前
|
SQL Oracle 关系型数据库
数据库的隔离级别
数据库事务隔离级别包括:读未提交(脏读、不可重复读、幻读)、读提交(避免脏读,但存在后两者,Oracle和SQL Server默认)、可重复读(保证多次读一致,解决不可重复读,MySQL默认)、可串行化(最高级别,串行执行,杜绝所有问题但性能差,极少使用)。
|
6月前
|
存储 数据库
三大范式的特点
数据库设计三大范式:第一范式要求列不可分、无重复;第二范式要求属性完全依赖主键,实现行唯一标识;第三范式要求消除传递依赖,避免非主属性冗余,提升数据一致性与存储效率。(238字)
|
6月前
|
数据库
事务的四大特性
事务的四大特性:原子性确保操作全成功或全回滚;一致性保证数据完整性;隔离性防止并发干扰;持久性使提交后的更改永久保存,即使系统故障也不丢失。
|
6月前
|
缓存 搜索推荐 关系型数据库
MySQL可以从哪些方面做到性能优化
合理创建索引,避免SELECT *,按需查询字段。采用垂直与水平分表减轻数据库压力,垂直分割列,水平分割行。选用合适搜索引擎,实现主从同步与读写分离,结合缓存机制提升性能,均衡冷热数据分布,优化整体系统负载。
|
6月前
|
存储 Kubernetes Shell
轻量化K8S 入门
K3s是轻量级Kubernetes发行版,单二进制文件集成控制平面,支持快速部署。采用containerd、Flannel等组件,支持高可用、离线安装与灵活扩展,适用于边缘计算、开发测试及生产环境。
|
6月前
|
弹性计算 Kubernetes 安全
云监控 2.0 面向实体的全链路日志审计与风险溯源
云监控2.0日志审计构建全链路安全溯源体系,通过统一采集基座融合云产品与运行时数据,依托UModel实体建模打通ACS、Infra、K8s多域孤岛,实现AK操作、网络异常、容器威胁、主机攻防等场景的一键溯源与闭环分析,助力企业从“看日志”迈向“懂业务”的智能安全运营。