[SQL] 資料表垂直分表

因為資料表內資料逐漸增大且索引已不敷使用,故為了提升查詢效率採用垂直分表

前提

因為資料表內欄位過多且資料量大,加上索引已經無法滿足需求,所以使用垂直分表來解決。

實作

原本的資料表A,因為常使用資料的相關時間做為查詢條件,若又增加一種時間勢必會又要加上索引,

加上這個資料表欄位過多,每加一個欄位又要設定索引都會有成本的考量。

故使用垂直分表將相關時間的資料搬移至另外一張表上,該表(TableDateInfo)的欄位數少故可以加上適當的索引讓查詢更加快速。

後續使用時間條件進行查詢的時候,可以先讀取 TableDateInfo 的時間欄位,再將取得到的 TableA_Index 回查相關顯示資料,

如此下次要再加上時間欄位就不會因為欄位數過多或者索引考量造成調整上的困難了。

 

結語

適當的將過多欄位數的資料表依照需求做垂直分表能有效提升效能,並且資料表能容易維護,

相對後續做效能調教能更有施展的空間。