当前位置:首页 » 文件管理 » 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,存储过程、函数、包以及触发器
但是有一点要清楚的是假如这些对象正在使用时是无法清除的。

热点内容
如果不玩游戏手机哪个配置够用 发布:2025-02-19 17:34:37 浏览:751
照相机显示存储卡错误 发布:2025-02-19 17:32:59 浏览:873
缩小数据库 发布:2025-02-19 17:32:58 浏览:15
阻止java 发布:2025-02-19 17:16:39 浏览:92
服务器电脑光驱打不开怎么办啊 发布:2025-02-19 17:15:05 浏览:179
信息存储公司 发布:2025-02-19 16:44:40 浏览:926
访问学者签证半年 发布:2025-02-19 16:44:34 浏览:114
玛卡编程 发布:2025-02-19 16:39:23 浏览:639
三菱plc存储卡 发布:2025-02-19 16:38:36 浏览:911
丨d密码忘记了怎么办 发布:2025-02-19 16:18:16 浏览:273