就 oracle 而言
update 的时候,如果存在索引字段的更新,则删除原索引条目(不是真正的删除数据,仅仅是在该行标记为 删除)插入新的索引条目
对于row本身的更新,是在行物理地更改,如果行的长度增加到当前位置无法容纳,则行的位置被提到 block的最上面一条记录的位置之上,假如该块已经无法容纳,则在原来行的物理位置保留一个指针,行被迁移到新的block,而保留的指针就是指向新的block的位置。这时索引中rowid不用发生变化,查询的时候先找到 那保留的指针,再去找 实际的新的位置。假如行迁移后再发生update 又导致迁移,则oracle首先看原来的位置的block是否具有容纳该行的空间,如果有就又迁移回去,如果没有就迁移到新的 块,修改原来最早块处的指针。 也就是说不会存在2个指针的查找才能找到 行
更新的时候,变化前后变化后的数据都被写入 redo ,变化前数据还被写入 回滚段,变化后数据被应用于 data buffer
若假设存在表t(a,b,c)
update t set a = ... where b = ... and c = ...
则回滚段中只记录 a 的变化前的值
关于update 的时候通常需要通过索引去定位,否则是全表扫描就很慢了
而insert 则只是找个 block 插进去,两者的差异可能很大,可能完全不是一个数量级的时间和资源的消耗
1: 是的,data buffer 中有回滚段块
2:update 如果仅仅是一个字段作为标记,并且长度不变,是可以的,row lock 不消耗额外的资源,是数据行的一个属性。如果2个用户更新同一条记录,后来者需要等待
1:update的变化前数据写入日志文件,是为了 恢复的时候 写入回滚段的
2:data buffer 中的变化是由 server process完成(所谓的SGA中的block的变化都是server process完成),而 block 写入文件是由dbwr 完成
insert 在回滚段中只 记录 rowid ,而 update 必须记录变化前数据
update 消耗更多的 回滚段、日志文件,当然查找数据、lock 等等都是问题,多用户情况下容易造成 并发 的等待
分享到:
相关推荐
Informatica Update 机制详解 Informatica Update 机制详解
描述PB的并发控制机制,详细解释Row changed between retrieve and update错误出现的原因,以及处理方法。对学习PB有一定的帮助。
linux锁机制的经典文档,read - copy - update。来自linux社区。
tcl/tk实例详解——-------------------------after、update和vwait
2 SS(Row-S) 行级共享锁,其他对象只能查询这些数据行 Select for update、Lock for update、Lock row share 3 SX(Row-X) 行级排它锁,在提交前不允许做DML操作 Insert、Update、Delete and so on
机器人相关应急预案简介update.docx
使用apt等工具,只要您的服务不在容器中运行,Linux发行版就会提供或多或少的便捷机制来应用这些更新。 容器化服务使检查需要更新的内容变得更加困难,并且需要不同的工作流程来更新软件包。 该软件包为Ubuntu提供...
这里讲述了vnc图像传输技术,通过分析vnc来是我们更加了解远程图像传送。
此插件提供了一种机制,用于在可以从App Store或Play商店下载新版本的应用程序时显示应用程序内通知。 对于iOS,这使用库。 对于Android,这实现了系统。 安装 科尔多瓦 cordova plugin add cordova-plugin-...
4、这一点比较重要,更新机制是根据update.xml中的<Verson>1.0.0.3和Name="ExceTransforCsv"进行比对是否下载。如果主程序下Properties/AssemblyInfo.cs的版本小于网站update.xml上的版本,则需下载。高于或等于都...
预先锁定模型,来进行多线程重新启动机制,将所有的更新循环检测进行多线程调度,多线程更新服务使用未来侦听器机制,在完成调度后,根据模型状态,如果模型重新重新将消息转化为如果模型死亡将消息转换为...
主要介绍了浅谈Qt QGraphics体系及刷新机制介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
平时我们说的冲突,是因为对同一文件的不同修改造成的冲突。树冲突,指的是由于目录(文件)树的改变,造成内容修改修改不能匹配在...本文介绍了重现 update 导致树冲突的重现过程,对SVN冲突解决机制进行实例探讨。
HotUpdateDemo热修复——类加载机制demo
- 新的审计机制用于提供新的搜索、报表和实时监控的能力 4. 网络与互操作性 - 支持 Autofs,FS-Cache 和 iSCSI - 增强的 IPv6 支持 - 改进的 Microsoft® 文件/打印和 Active Directory 集成 5. 桌面 - 更新的...
for update 加锁机制是一样的,所以为了避免重复,对于 update 语句就不在一起汇总了(当然也有例外,譬如使用 update 对索引进行更新时加锁机制和 delete 是有区别的,这种情况我会单独列出,如案例 11)。...
锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的...
MySQL缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要再去解析和执行sql。如果表更改 了,那么使用这个表的所有缓冲查询将不再有效,查询缓存值的相关条目被...
本文实例讲述了MySQL锁机制与用法。分享给大家供大家参考,具体如下: MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁;BDB存储引擎采用的是...
添加插件机制 添加淘宝聚划算插件页面 添加淘宝优惠券插件页面 商城订单添加下单时间索引 增加注册会员后返回原地址 增加会员中心扣除事件显示 增加淘宝聚划算商品下架时的特别处理情况 修复群发错误记录 ...