iT邦幫忙

DAY 15
1

MySQL on Azure系列 第 15

MySQL on Azure(14)

反正規化

對岸稱之為逆規範化

方法很簡單 很直覺 直覺倒覺得偷懶 直覺到不用學 直覺到講破了 沒甚麼

  1. 把需要Join才能取得的資料 寫到主資料表來

  2. 或找把其他表格欄位所計算出的結果 寫到主資料表來

  3. 將 Join或者兩個表格以上計算的結果集 寫到新的資料表

以上的用意是相同的 減少Join的時間

  1. 將大的資料表 依據時間 地域性 等等容易分割 且查詢時幾乎一定會用到的欄位 分隔成幾個小表格

以上的副作用就是 資料表格需要額外的工作來維持資料的一致

  1. 累積一定的不一致時 再利用cpu閒置時間 統一修正

  2. 每次在資料修改時 在Server Side Script中 將所有欄位都修改

  3. 使用Trigger 在同樣Data 位於不同表格的之一被修改時 立即修正所有相關表格

方法1, 只限於允許資料有些許不正確的情況之下使用

方法3較方法2容易維護


上一篇
MySQL on Azure(13)
下一篇
MySQL on Azure(15)
系列文
MySQL on Azure30

尚未有邦友留言

立即登入留言