update的機制問題
update的機制問題
[@more@]的機制問題
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 插進去,兩者的差異可能很大,可能完全不是一個數量級的時間和資源的消耗
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/222350/viewspace-907913/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Handler機制的問題
- Hibernate 動態Update的問題
- GC機制和OutOfMemory問題的診斷GC
- 無法執行的update問題解析
- 聊一聊Integer的快取機制問題快取
- 解決pod install update很慢的問題
- update沒帶where,尋找問題的思路
- 理解Cookie和Session機制,及其安全問題CookieSession
- 02.Android之IPC機制問題Android
- hibernate中不必要的sql update問題SQL
- 聲網 Token 鑑權機制,以及常見的問題
- web安全機制問題詳解之二:CSRFWeb
- 06.Android之訊息機制問題Android
- C# Redis 過期機制不生效問題C#Redis
- 這種錯誤怎麼解決??pojoService問題,反射機制問題嗎?POJO反射
- 解決Rust -- update crates.io過慢的問題Rust
- 用nginx的反向代理機制解決前端跨域問題Nginx前端跨域
- web安全機制問題詳解之一:XSSWeb
- 全面瞭解mysql鎖機制(InnoDB)與問題排查MySql
- InnoDB儲存引擎鎖機制(五、 常見問題)儲存引擎
- SVN命令解析以及問題解決(update...)
- 淺析TPS遊戲處理掩蔽機制所存在的問題遊戲
- 由select for update鎖等待問題引發的深入思考
- 使用Erlang訊息機制實現穩定婚姻問題
- 急求:如何使用反射機制解決這個問題!!!???反射
- MySQL中SELECT+UPDATE併發更新問題MySql
- 記一次線上問題引發的對 Mysql 鎖機制分析MySql
- 訂單系統中併發問題和鎖機制的探討
- Java反射機制與struts1.1結合運用遇到的問題!Java反射
- 解決ROS國內rosdep init和update的相關問題ROS
- 限制訪問表的FOR UPDATE操作
- LeetCode第 146 號問題: LRU 快取機制LeetCode快取
- 記一次 MySQL select for update 死鎖問題MySql
- vm安裝ubuntu後,update報錯問題解決Ubuntu
- 函式宣告與變數宣告的提升機制優先順序問題函式變數
- 每個 Android 開發者必須知道的訊息機制問題總結Android
- 【問題解決】單機搭建dataguard的問題
- 解決maven update project 後專案jdk變成1.5的問題MavenProjectJDK