iT邦幫忙

0

請問資料庫「水平分割」與「自動建置」資料表的比較

  • 分享至 

  • xImage

請問各位高手,最近公司要做一套系統
因為資料量會很龐大,所以在說要依使用者ID值來下一個指令水平分割資料表
1-2000放第一個資料表,2001-4000放第二個資料表以此列推

此時有人建議使用程式去自動建置資料表的方式去做
以資料表後面加上_n去分使用者的資料要放到哪一個資料表
_1放1-2000,_2放2001-4000,以此列推
例如,2001使用者放丟資料時,程式會去新建一個data_2的資料表

兩個方式都是為了可以把資料分散儲存,提升效能
想請問各位有經驗的高手
這兩種做法有何優缺點呢?比較推薦哪一種做法呢?
以下是我的小小見解,
第一種方法比較好建置與管理,但是會耗較多的空間。
第二種方法效能比較好且空間較節省,但隨著使用者變多,越來越多資料表不好管理。
再請高手指教一下,謝謝 :D

請教一下
這是誰想出來的點子
或是在那本書裡有這套理論
疑惑

另外我想請教一下
以文中所舉的例子來說
1-2000 一個 table
2001-4000 一個 table
...以此類推
如果刪掉一筆資料,就說第 1500 筆好了
那麼
需不需要把 2001-4000 筆的資料
搬一筆到第一個 table 呢
疑惑
static314 iT邦研究生 5 級 ‧ 2014-03-27 14:58:39 檢舉
1.
其實我提的水平分割是bruck大大說的partitioning功能,只是我想不太起來語法怎下 :)

2.
不好意思可能我表達的沒有很好
1-2000是使用者的ID主鍵值
所以當使用者越來越多時,才會建立到第二個資料表
因為使用者正常不太會去刪除
如果有刪除,只會有的資料表比較多資料,有的比較少 :)
謝謝 :D
哦,了解了
謝謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
James
iT邦大師 6 級 ‧ 2014-03-27 14:09:44
最佳解答

現在資料庫都內建partitioning功能了,不用再自己切了。自己切如果要關聯或搜尋都會很麻煩。

我要發表回答

立即登入回答