提高對大批量資料時MV的重新整理效率
最近接到一個需求:把某一個表的欄位設一個預設值,並把該欄位當前所有資料都更新為這個預設值。
這個需求做起來不是很難,難在資料的同步上。
我這裡的資料庫環境是這樣的:
外網資料庫:WAI
內網資料庫:NEI
為了開發測試方便、準確,每天會把外網的資料用MV的方式單向同步到內網上。MV的可更新主鍵MV,MV重新整理方式是FAST。
我們知道,可更新MV在資料重新整理後會將資料恢復至上次重新整理的狀態,也就是說丟失所有非重新整理造成的資料變化,為了恢復,可更新MV同時會生成一個USLOG$_XXX表來記錄對MV資料的改動;同時在源庫上會生成一個MLOG$_XXX表來記錄源表記錄的變化,以便MV能使用FAST的方式重新整理資料。
同時,我們還知道,當主表非lob型別資料發生變化時,無論變化的是一個欄位還是多個欄位,在MV重新整理的時候都是把整個記錄都重新整理過來。
回頭看需求,不難得出這樣一個結論:在主表更新資料可能不會很慢,但在重新整理資料時會非常慢,它消耗的資源會比MV做一次全重新整理還要大。(重新整理資料,刪除兩邊對應的LOG)。
其實如果知道原理的話,要提高完成這個工作的效率還是很簡單的。我採取的方法是:先重新整理一下MV,然後分別手工更新主表和MV的欄位,然後刪除由更新產生的MLOG$_XXX和USLOG$_XXX的記錄。
當然這種手段應該儘量少用了,只有在非常情況下采用,否則MV就失去其意義了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63734/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深究mv移動資料夾時`/`的用法
- 大資料時代事業單位利用資料分析提高工作效率大資料
- 提高codeing執行時間效率
- 華為雲 DAS,大幅提高資料庫開發效率資料庫
- 提高招人的效率
- Hive 如何快速拉取大批量資料Hive
- 大資料同步方案怎麼選,才能提高企業的業務效率?大資料
- 面對疫情,提高生產力和效率是高管們期望的最理想結果(附原資料表)
- ElasticSearch在數十億級別資料下,如何提高查詢效率?Elasticsearch
- 用prebuild mv 方法遷移資料Rebuild
- 如何提高介面測試的效率
- 如何提高使用Java反射的效率?Java反射
- 提高採購流程效率的方法
- 如何提高App開發的效率?APP
- 提高VSCode 10倍效率的技巧VSCode
- Java:匯出Excel大批量資料的優化過程JavaExcel優化
- 用Jupyter+pandas資料分析,6種資料格式效率對比
- 提高資料庫工作效率,多功能SQL資料庫編輯器RazorSQL值得一試!資料庫SQL
- 提高了資料庫產品開發的“效率”,它將原始碼開放資料庫原始碼
- 生產工時管理系統:提高效率的秘訣
- 即時通訊系統是企業提高辦公效率的利器
- 由mv命令引發的對inode的思考
- 提高iOS App開發效率的方法iOSAPP
- 提高效率的總結
- 智慧數字經營—分析是如何用資料提高效率
- 想提高運維效率,那就把MySQL資料庫部署到Kubernetes 叢集中運維MySql資料庫
- 使用人工智慧機器人提高農業效率 | 資料標註人工智慧機器人
- 效率躍升16倍!火山引擎ByteHouse助力銷售資料平臺複雜查詢效率大幅提高
- 爬蟲筆記:提高資料採集效率!代理池和執行緒池的使用爬蟲筆記執行緒
- 如何提高Java學習效率Java
- 用 FutureBuilder 提高開發效率Rebuild
- 專案管理效率如何提高?專案管理
- 提高開發效率小技巧
- 如何將MCU與FPGA進行配對達到提高系統效率的目的?FPGA
- Oracle 刪除千萬級資料量時,可以考慮以下方法來提高刪除效率Oracle
- 善用快取提高你的SPRING工程效率快取Spring
- 提高 MongoDB 運維效率的實用技巧MongoDB運維
- 提高程式碼的執行效率(1)