mysql必知必会第5版pdf_sql必知必会
在Oracle中,绑定变量是它的一大特色。绑定变量就是 在SQL语句中使用变量,通过不同的变量取值来改变SQL的执行结果。这样做的好处是能提升软解析的可能 性,不足之处在于可能会导致生成的执行计划不够优化,因此是否需要绑定变量还需要视情况而定。
举个例子,我们可以使用下面的查询语句:
SQL> select * from player where player_id = 10001;
你也可以使用绑定变量,如:
SQL> select * from player where player_id = :player_id;
这两个查询语句的效率在Oracle中是完全不同的。如果你在查询player_id = 10001之后,还会查询10002、 10003之类的数据,那么每一次查询都会创建一个新的查询解析。而第二种方式使用了绑定变量,那么在第 一次查询之后,在共享池中就会存在这类查询的执行计划,也就是软解析。
因此我们可以通过使用绑定变量来减少硬解析,减少Oracle的解析工作量。但是这种方式也有缺点,使用动 态SQL的方式,因为参数不同,会导致SQL的执行效率不同,同时SQL优化也会比较困难。
2、mysql中sql是如何执行的?
mysql是典型的cs架构,服务器端程序使用mysqld。整体的mysql流程如下图所示。
1. 连接层:客户端和服务器端建立连接,客户端发送SQL至服务器端; 2. SQL层:对SQL语句进行查询处理;
3. 存储引擎层:与数据库文件打交道,负责数据的存储和读取。
其中SQL层与数据库文件的存储方式无关,我们来看下SQL层的结构:
1. 查询缓存:Server如果在查询缓存中发现了这条SQL语句,就会直接将结果返回给客户端;如果没有,就进入到解析器阶段。需要说明的是,因为查询缓存往往效率不高,所以在MySQL8.0之后就抛弃了这个功能。
解析器:在解析器中对SQL语句进行语法分析、语义分析。
优化器:在优化器中会确定SQL语句的执行路径,比如是根据全表检索,还是根据索引来检索等。
执行器:在执行之前需要判断该用户是否具备权限,如果具备权限就执行SQL查询并返回结果。在MySQL8.0以下的版本,如果设置了查询缓存,这时会将查询结果进行缓存。
你能看到SQL语句在MySQL中的流程是:SQL语句→缓存查询→解析器→优化器→执行器。在一部分中, MySQL和Oracle执行SQL的原理是一样的。
与Oracle不同的是,MySQL的存储引擎采用了插件的形式,每个存储引擎都面向一种特定的数据库应用环 境。同时开源的MySQL还允许开发人员设置自己的存储引擎,下面是一些常见的存储引擎:
InnoDB存储引擎:它是MySQL 5.5.8版本之后默认的存储引擎,最大的特点是支持事务、行级锁定、外 键约束等。
MyISAM存储引擎:在MySQL 5.5.8版本之前是默认的存储引擎,不支持事务,也不支持外键,最大的特 点是速度快,占用资源少。
Memory存储引擎:使用系统内存作为存储介质,以便得到更快的响应速度。不过如果mysqld进程崩 溃,则会导致所有的数据丢失,因此我们只有当数据是临时的情况下才使用Memory存储引擎。
NDB存储引擎:也叫做NDB Cluster存储引擎,主要用于MySQL Cluster分布式集群环境,类似于Oracle 的RAC集群。
Archive存储引擎:它有很好的压缩机制,用于文件归档,在请求写入时会进行压缩,所以也经常用来做 仓库。
需要注意的是,数据库的设计在于表的设计,而在MySQL中每个表的设计都可以采用不同的存储引擎,我 们可以根据实际的数据处理需要来选择存储引擎,这也是MySQL的强大之处。
mysql必知必会第5版pdf_sql必知必会相关推荐
- html列表按时间排序代码_程序员小白必看:腾讯视频版排序列表的实现
每当我们对国产剧失望的时候 总会有一部令人惊喜的剧目横空出世 这几天你一定被一个国产剧刷屏了 它就是<隐秘的角落> 图片源于网络,仅作配文展示 也许你并不是"第一个吃螃蟹的人&q ...
- Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问 对于可以静态化的页面,尽可能静态化 对一个动态页面中可以静态的局部,采用静态化 部分数据可以生成XML,或者文 ...
- 知来路方知去处。坎坷已过,一马平川后必看的经典!——2018最新倾斜摄影建模与无人机航拍影像处理完美配置解决方案!
知来路方知去处.坎坷已过,一马平川后必看的经典!--2018最新倾斜摄影建模与无人机航拍影像处理完美配置解决方案! 知来路方知去处.来路坎坷已过,一马平川后更待继续攀登,这是测绘从业者的真实写照,也是 ...
- 关于s19赛季服务器维修,S19赛季已开服,版本重点调整需知熟,想要跟上游戏节奏必了解...
原标题:S19赛季已开服,版本重点调整需知熟,想要跟上游戏节奏必了解 哈喽,大家好,欢迎来到AIES电竞. 王者荣耀S19赛季已经正式开服了,不过苹果区的召唤师还需要等一等,因为每次新赛季开启延迟的区 ...
- 【2023华为OD笔试必会25题--C语言版】目录
本专栏收录了华为OD 2022 Q4和2023Q1笔试题目,100分类别中的出现频率最高(至少出现100次)的25道,每篇文章包括题目和我亲自编写并在Visual Studio中运行成功的C语言代码. ...
- 天 下 难 事 , 必 作 于 易 , 天 下 大 事 , 必 作 于 细 -道德经的哲学
<道德经>--<老子道德经> 老 子: 「道 德 經」: 第 一 章 道 可 道 , 非 常 道 . 名 可 名 , 非 常 名 . 无 名 天 地 之 始 ﹔ 有 名 万 物 ...
- MySQL 企业监控器 2.3.10 正式版发布
Oracle于近日发布了 MySQL 企业监控器 2.3.10 正式版. MySQL企业监控器主要用于实施对数据库进行监控和管理.通过它,数据库管理员不但可以获得高级的数据复制和数据库监控功能,同时还 ...
- 编程行业高手级别必学C语言,要挣大钱必学C语言,要做黑客、红客必学C语言,要面试名企、外企、高薪职位必学C语言。
于大部分程序员, C语言 是学习 编程 的第一门语言,很少有不了解C的程序员. C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的, ...
- 【MySQL练习】数据查询(02)-简易版
---------------------MYSQL练习题:数据查询(02)-简易版---------------------- 提供了数据查询进阶版练习题的各种目录文件,便于对照自己思索练习: 增强 ...
- JAVA实现导出mysql表结构到Word详细注解版
JAVA实现导出mysql表结构到Word详细注解版 转自https://blog.csdn.net/weixin_42041153/article/details/109739073 本文在原文中一 ...
最新文章
- 程序员新手 0年份等级 指导(一) 开发人员IT架构总览
- Nature:功能微生物组研究典范—采用甘露糖苷选择性抑制尿路致病性大肠杆菌(Gordon组作品)...
- 都在说微服务,那么微服务的反模式和陷阱是什么(三)
- 注意力机制的两种形式
- java 线程模型_Java基础篇之Java线程模型
- 2015蓝桥杯省赛---java---A---8(移动距离)
- 怎么创建数据表的实体类和业务类_微服务项目第13天:商品分类业务的实现
- 【C#】ADO .Net Entities Framework使用查询语句时遇到的错误
- python观察内存和修改内存
- 简单的PL/SQl链接远程ORACLE数据库方法
- redhat 6.5 vnc 配置
- 批处理mysql命令
- 引用类型-Function类型
- Java制作证书的工具keytool用法总结
- 下载b站外挂字幕,用 potplayer 播放视频也能看字幕了
- 单例模式的四种实现方式(饿汉模式、懒汉模式、静态内部类、枚举类)
- csp-202203
- pytorch学习--UNet模型
- rtklib 周跳检测
- 免费是王道!盘点国外十款免费好用的反病毒软件产品