看板 Soft_Job 關於我們 聯絡資訊
各位先進 打給賀 小弟有幸進入一間流量還算大的公司 看完幾個主要的DB後些問題想請問各位大大 他們將許多資料表再拆成許多庫 例如: DBUser -user_users -user_config -user_logs DBProduct -prod_items -prod_category -prod_log 目測總資料庫大約有十來個 表約近百張 請問這樣的設計和將全部表放在同個DB內有何差異? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.39.205 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1538968075.A.881.html
acer1832a: 安全,避免誤刪。我有看過有兩個系統用同一個資料庫 10/08 11:18
acer1832a: 用Table的prefix去區分;結果其中一個系統在做debug時 10/08 11:19
acer1832a: 把所有Table都刪了,刪完才想到有另一個系統的資料 10/08 11:20
testPtt: 通常是不需或不希望用join的資料 10/08 11:29
sweet00914: 風險及效能考量 10/08 11:34
qrtt1: 聽起來像 event sourcing 與 CQRS 架構 10/08 11:56
alihue: https://goo.gl/KZHX4o 10/08 12:02
alihue: 正確答案可能依每家資料庫而不同 10/08 12:03
f496328mm: 流量算大,那分開來有助於效能提升 10/08 12:47
f496328mm: 舉例來說,全部有10億筆data 10/08 12:47
f496328mm: user_users 只有1000筆,那我要拿裡面的 data 10/08 12:48
f496328mm: 還要先從 10 億中去找到其中的 user 10/08 12:48
alan3100: 分開才是正常的吧... 合在一起要不是資料太少不然就塞康 10/08 13:16
alan3100: 如果同樣的資料量全放在一起,會慢又難維護又超多index 10/08 13:18
謝謝各位大大的解說 ※ 編輯: groza (114.32.39.205), 10/08/2018 13:33:59
zo4j4: 感覺沒有一個專業dba的答案欸…XD 10/08 14:17
neo5277: 分庫分表又名藍色蜘蛛網 10/08 14:33
neo5277: 這種架構滿適合做成CQRS然後走API 10/08 14:34
neo5277: 針對的是資料本身吧金融業跟資料為主的常這樣做 10/08 14:35
mintu: 蠻好奇如果這是在某些情況中蠻常見的架構,在開發環境中一 10/08 18:03
mintu: 樣要有同樣的架構嗎?還是可以由設定去做要讀哪個 DB 就好 10/08 18:03
ripple0129: 九成以上都是效能考量為主啊,高流量下單一DB容易打 10/08 19:38
ripple0129: 到掛點吧,主要也都使用高速可完成的sql,商業邏輯複 10/08 19:38
ripple0129: 雜度都靠後端程式碼解決 10/08 19:38
ripple0129: 開發環境不是問題啊,一定是設定檔host+db_name,開發 10/08 19:39
ripple0129: 環境下host相同就好 10/08 19:39
banqhsia: 還有依照帳號名稱分表的勒 10/08 22:50
AvatarH: 請問在不同資料庫之間的table可以join或union嗎? 10/09 17:39
mathrew: 可以啊 10/10 07:44
forewero: 不同資料庫可以做join,藉這個題往下問一個問題,實務上 10/10 15:05
forewero: 會直接在SQL跨db join還是拉到orm做join?(ex.EF+LINQ) 10/10 15:05
neo5277: 我是都orm做 10/10 16:28
THEWORLDS: 分散式運算,主要是可能有很多不同站點但服務是一樣的 10/10 18:31
THEWORLDS: 你又想要讓他們所有資料總結,就會設很多個db,設計大 10/10 18:31
THEWORLDS: 概會是資料進去以後固定TRIGGER或跑PROCEDURE分別在抓 10/10 18:32
THEWORLDS: 到別的表格上面去做總結 10/10 18:32
THEWORLDS: 查詢某些資料的話就設計個動態db去另外一個db查詢,這 10/10 18:32
THEWORLDS: 樣整個效率會高非常多又簡單,大概是這樣 10/10 18:33
zo4j4: 樓上正解 10/11 19:00