当前位置:首页 » 文件管理 » select缓存

select缓存

发布时间: 2025-02-16 05:55:36

‘壹’ 面试官:select语句和update语句分别是怎么执行的

深入了解sql执行过程,无论是SELECT还是UPDATE语句,都遵循了类似的流程,但具体实现存在差异。理解这些差异不仅有助于面试,更能优化SQL执行效率。



SELECT语句执行流程


执行SELECT语句时,主要分为以下几个步骤:



  • 连接器: 首先校验用户名和密码,验证权限。连接成功后,权限范围内的操作才能继续。

  • 检索缓存: 从缓存中查找是否执行过此SQL,缓存命中直接返回结果,未命中则继续。

  • 分析器: 包括词法分析和语法分析,确定语句类型和具体操作。

  • 优化器: 根据解析树生成最优执行计划,考虑使用索引、表关联顺序等。

  • 执行器: 执行优化后的计划,调用存储引擎读接口,获取数据。


UPDATE语句执行流程


执行UPDATE语句时,同样经过连接器、分析器、优化器、执行器,但区别在于涉及redo log和binlog的操作。



  • redo log: 先写日志,后更新内存和磁盘,提高效率。

  • binlog: 记录原始SQL,用于数据恢复和复制。


关键点


在执行过程中,SELECT和UPDATE的主要区别在于对数据的访问和修改。同时,使用缓存、优化器、redo log和binlog等功能,可以显着提升SQL执行效率。理解这些技术的原理和应用,对于提升数据库性能至关重要。



综上所述,SELECT和UPDATE语句在执行流程上有相似之处,但在具体操作上存在差异,涉及的数据访问和修改方式不同。深入理解这些差异,有助于优化SQL查询和数据库性能。这一内容涉及的技术点包括缓存机制、SQL解析与优化、日志系统等,这些都是数据库管理中不可或缺的组成部分。

‘贰’ MyBatis二级缓存带来的问题

MyBatis二级缓存使用的在某些场景下会出问题,来看一下为什么这么说。

假设我有一条select语句(开启了二级缓存):

selecta.col1, a.col2, a.col3, b.col1, b.col2, b.col3fromtableA a, tableB bwherea.id= b.id;

对于tableA与tableB的操作定义在两个Mapper中,分别叫做MapperA与MapperB,即它们属于两个命名空间,如果此时启用缓存:

MapperA中执行上述sql语句查询这6个字段

tableB更新了col1与col2两个字段

MapperA再次执行上述sql语句查询这6个字段(前提是没有执行过任何insert、delete、update操作)

此时问题就来了,即使第(2)步tableB更新了col1与col2两个字段,第(3)步MapperA走二级缓存查询到的这6个字段依然是原来的这6个字段的值,因为我们从CacheKey的3组条件来看:

<select>标签所在的Mapper的Namespace+<select>标签的id属性

RowBounds的offset和limit属性,RowBounds是MyBatis用于处理分页的一个类,offset默认为0,limit默认为Integer.MAX_VALUE

<select>标签中定义的sql语句

对于MapperA来说,其中的任何一个条件都没有变化,自然会将原结果返回。

这个问题对于MyBatis的二级缓存来说是一个无解的问题,因此使用MyBatis二级缓存有一个前提: 必须保证所有的增删改查都在同一个命名空间下才行 。

‘叁’ Oracle如何清理多次select查询后在内存中的缓存数据

ALTER SYSTEM FLUSH SHARED_POOL

这个语句清除SGA中的 shared pool,shared pool存储下面的信息:
1、数据字典
2、Shared SQL & PL/SQL,存储过程、函数、包以及触发器
但是有一点要清楚的是假如这些对象正在使用时是无法清除的。

热点内容
批处理ftp上传文件夹 发布:2025-04-22 17:29:26 浏览:787
android日程管理系统 发布:2025-04-22 17:13:28 浏览:386
编译语言全家桶软件 发布:2025-04-22 17:02:29 浏览:390
javascriptdes加密 发布:2025-04-22 17:02:11 浏览:388
python线程参数 发布:2025-04-22 17:01:01 浏览:319
卫生员什么配置 发布:2025-04-22 17:00:02 浏览:220
苹果系统搭建服务器的软件 发布:2025-04-22 16:36:29 浏览:13
房车配置怎么选择 发布:2025-04-22 16:22:14 浏览:493
编程猫gb 发布:2025-04-22 16:22:13 浏览:632
密码加密php 发布:2025-04-22 16:07:09 浏览:582