推 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: 正確答案可能依每家資料庫而不同 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