Mysql和Oracle数据库sql执行过程的区别
来源:互联网 发布:大数据前沿技术应用 编辑:程序博客网 时间:2024/06/10 02:08
Mysql
客户提交一条语句
现在查询缓存查看是否存在对应的缓存数据,如有则直接返回(一般有的可能性极小,因此一般建议关闭查询缓存)。
交给解析器处理,解析器会将提交的语句生成一个解析树。
预处理器会处理解析树,形成新的解析树。这一阶段存在一些SQL改写的过程。
改写后的解析树提交给查询优化器。查询优化器生成执行计划。
执行计划交由执行引擎调用存储引擎接口,完成执行过程。这里要注意,MySQL的Server层和Engine层是分离的。
最终的结果有执行引擎返回给客户端,如果开启查询缓存的话,则会缓存。
Oracle
用户提交了一条SQL语句
数据库按照SQL语句的字面值计算出一个HASH值
根据HASH值,判断一下在数据库缓冲区中是否存在此SQL的执行计划。
如果不存在,则需要生成一个执行计划(硬解析过程),然后将结果存入缓冲区。
如果存在的话,判断是否为相同SQL(同样HASH值的语句,可能字符不相同;即使完全相同,也可能代表不同的语句。这块不展开说了)
确认是同一条SQL语句,则从缓冲区中取出执行计划。
将执行计划,交给执行器执行。
结果返回给客户端。
0 0
- Mysql和Oracle数据库sql执行过程的区别
- ORACLE数据库SQL语句的执行过程
- ORACLE数据库SQL语句的执行过程
- 浅谈MySQL和Oracle数据库中sql的区别
- Oracle 数据库如何搜集指定SQL的执行计划和解决过程中的ORA-00904错误
- 【mysql】SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
- 【mysql】SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
- 【mysql】SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
- Oracle SQL的执行过程
- win10 数据库SQL Server的安装之SQL Server 和 Oracle 以及 MySQL 有哪些区别
- sql server 和oracle数据库的区别
- 通用的SQL和Oracle的存储过程执行方法
- 数据库(SQL、MySQL、Oracle)安装过程
- Oracle、SQL SEVER、Mysql三大数据库的区别
- ORACLE执行SQL过程
- ORACLE sql执行过程
- Oracle SQL执行过程
- ORACLE执行SQL过程
- 几分钟时间,搞清开源许可证之间的区别
- muduo网络库学习笔记(6):单例类(线程安全的)
- 代理详解 传值
- android中Root权限的判断与获取
- Leetcode no. 14
- Mysql和Oracle数据库sql执行过程的区别
- Linux Centos 6.5 安装FFMPEG && 故障排查
- Linux kernel 的 sendfile 是如何提高性能的
- IP地址0.0.0.0是什么意思?
- 上一周的知识点总结以及思路的理解
- Spring+MyBatis多数据源配置实现
- c++调用python发送邮件
- Leetcode 290. Word Pattern
- GIT工作流程/步骤/基本命令