MSSQL冗餘欄位的策略和管理
冗餘欄位的使用在多表聯合查詢都是大資料量的表的情況下,確實是個不錯的選擇,有效的減少了IO操作。但結合已有的專案產品來看,冗餘欄位確實是雙刃劍。尤其是大專案的開發,如果忽略某個表的冗餘欄位的更新,那麼後果是災難性的。如何有效的管理冗餘欄位是開發組內必須解決的問題。我的解決方案是:使用專門的表來管理冗餘欄位。例如article表有以下冗餘欄位
fromUserName,toUserName
如何管理這兩個欄位呢?通過建立一個表,表結構如下
id,objTable,objName,sourceTable, sourceId,level,isUpdate
其中objTable=目標表,objName= 目標欄位,sourceTable=源表,sourceId=源表ID,level=是否需要立即更新,isUpdate=是否已更新
其中,level欄位很有必要,有些冗餘欄位並不需要在源表修改後立即更新,那麼可以通過一個定期更新策略來更新。
通過庫表的管理,配合一個合理的儲存過程,冗餘欄位的使用將不再是難題。
舉例,如果上面兩個欄位發生變化,則使用觸發器或者呼叫這個儲存過程來檢查是否有需要立即更新的冗餘欄位,需要則立即更新,不需要則isUpdate置0,等到週期性的策略來更新同時isUpdate=1。
如果專案中使用了memcache,則還可以使用另一個思路來進一步減小資料庫IO操作。下篇再展開來說。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-621174/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫設計——冗餘欄位資料庫
- 資料庫設計之欄位冗餘資料庫
- 資料庫效能優化之冗餘欄位的作用資料庫優化
- 細說 Azure Storage 的冗餘策略
- MSSql得到表的結構和欄位SQL
- MySQL 冗餘和重複索引薦MySql索引
- 找出冗餘索引的指令碼索引指令碼
- MSSQL資料庫的欄位型別總結SQL資料庫型別
- CRC冗餘校驗碼的介紹和實現
- 網路冗餘技術
- MSSQL大資料量增加欄位耗時對比SQL大資料
- [MSSQL]以字元','分隔的欄位值,迴圈插入表中SQL字元
- 修改ASM磁碟組冗餘模式ASM模式
- 廉價冗餘磁碟陣列陣列
- 如何消除冗餘資料的安全風險?
- [BUG反饋]模型管理 > 欄位管理看不見任何欄位。這表明顯有欄位、!模型
- 詳解分散式系統本質:“分治”和“冗餘”分散式
- 海明碼舉例分析(監督關係與資訊碼 冗餘位)
- 演算法題——冗餘連線演算法
- mssql sqlserver 可以儲存二進位制資料的欄位型別詳解SQLServer型別
- Oracle日誌組新增冗餘檔案和日誌組Oracle
- CRC(迴圈冗餘校驗)和CBC(密碼塊鏈)密碼
- RMAN備份中冗餘度和Obsolete的備份的關係
- oracle asm 磁碟管理什麼場景該用什麼樣的冗餘方式OracleASM
- 如何刪除Git倉庫中冗餘的tag?Git
- FHRP - 閘道器冗餘協議協議
- 虛擬路由冗餘協議VRRP路由協議VR
- ASM可以更改冗餘度&增加failgroup嗎?ASMAI
- SAP CRM Fiori應用冗餘round trip的原因分析
- 去除冗餘 – 精簡您的CSS樣式程式碼CSS
- Backup And Recovery User's Guide-RMAN備份概念-備份保留期策略-備份冗餘GUIIDE
- sql語句修改欄位型別和增加欄位SQL型別
- oracle刪除表欄位和oracle表增加欄位Oracle
- hadoop之 心跳時間與冗餘快清除Hadoop
- iOS專案冗餘資源掃描指令碼iOS指令碼
- 機器學習中如何用篩選器檢測冗餘?機器學習
- 小白讀iOS冗餘資源掃描指令碼iOS指令碼
- 使用Addressables+SpriteAtlas打包產生冗餘