[請益] 一個以上的db

看板Soft_Job (軟體人)作者 (狗煞)時間7年前 (2018/10/08 11:07), 7年前編輯推噓10(10028)
留言38則, 16人參與, 7年前最新討論串1/1
各位先進 打給賀 小弟有幸進入一間流量還算大的公司 看完幾個主要的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

10/08 11:18, 7年前 , 1F
安全,避免誤刪。我有看過有兩個系統用同一個資料庫
10/08 11:18, 1F

10/08 11:19, 7年前 , 2F
用Table的prefix去區分;結果其中一個系統在做debug時
10/08 11:19, 2F

10/08 11:20, 7年前 , 3F
把所有Table都刪了,刪完才想到有另一個系統的資料
10/08 11:20, 3F

10/08 11:29, 7年前 , 4F
通常是不需或不希望用join的資料
10/08 11:29, 4F

10/08 11:34, 7年前 , 5F
風險及效能考量
10/08 11:34, 5F

10/08 11:56, 7年前 , 6F
聽起來像 event sourcing 與 CQRS 架構
10/08 11:56, 6F

10/08 12:02, 7年前 , 7F
10/08 12:02, 7F

10/08 12:03, 7年前 , 8F
正確答案可能依每家資料庫而不同
10/08 12:03, 8F

10/08 12:47, 7年前 , 9F
流量算大,那分開來有助於效能提升
10/08 12:47, 9F

10/08 12:47, 7年前 , 10F
舉例來說,全部有10億筆data
10/08 12:47, 10F

10/08 12:48, 7年前 , 11F
user_users 只有1000筆,那我要拿裡面的 data
10/08 12:48, 11F

10/08 12:48, 7年前 , 12F
還要先從 10 億中去找到其中的 user
10/08 12:48, 12F

10/08 13:16, 7年前 , 13F
分開才是正常的吧... 合在一起要不是資料太少不然就塞康
10/08 13:16, 13F

10/08 13:18, 7年前 , 14F
如果同樣的資料量全放在一起,會慢又難維護又超多index
10/08 13:18, 14F
謝謝各位大大的解說 ※ 編輯: groza (114.32.39.205), 10/08/2018 13:33:59

10/08 14:17, 7年前 , 15F
感覺沒有一個專業dba的答案欸…XD
10/08 14:17, 15F

10/08 14:33, 7年前 , 16F
分庫分表又名藍色蜘蛛網
10/08 14:33, 16F

10/08 14:34, 7年前 , 17F
這種架構滿適合做成CQRS然後走API
10/08 14:34, 17F

10/08 14:35, 7年前 , 18F
針對的是資料本身吧金融業跟資料為主的常這樣做
10/08 14:35, 18F

10/08 18:03, 7年前 , 19F
蠻好奇如果這是在某些情況中蠻常見的架構,在開發環境中一
10/08 18:03, 19F

10/08 18:03, 7年前 , 20F
樣要有同樣的架構嗎?還是可以由設定去做要讀哪個 DB 就好
10/08 18:03, 20F

10/08 19:38, 7年前 , 21F
九成以上都是效能考量為主啊,高流量下單一DB容易打
10/08 19:38, 21F

10/08 19:38, 7年前 , 22F
到掛點吧,主要也都使用高速可完成的sql,商業邏輯複
10/08 19:38, 22F

10/08 19:38, 7年前 , 23F
雜度都靠後端程式碼解決
10/08 19:38, 23F

10/08 19:39, 7年前 , 24F
開發環境不是問題啊,一定是設定檔host+db_name,開發
10/08 19:39, 24F

10/08 19:39, 7年前 , 25F
環境下host相同就好
10/08 19:39, 25F

10/08 22:50, 7年前 , 26F
還有依照帳號名稱分表的勒
10/08 22:50, 26F

10/09 17:39, 7年前 , 27F
請問在不同資料庫之間的table可以join或union嗎?
10/09 17:39, 27F

10/10 07:44, 7年前 , 28F
可以啊
10/10 07:44, 28F

10/10 15:05, 7年前 , 29F
不同資料庫可以做join,藉這個題往下問一個問題,實務上
10/10 15:05, 29F

10/10 15:05, 7年前 , 30F
會直接在SQL跨db join還是拉到orm做join?(ex.EF+LINQ)
10/10 15:05, 30F

10/10 16:28, 7年前 , 31F
我是都orm做
10/10 16:28, 31F

10/10 18:31, 7年前 , 32F
分散式運算,主要是可能有很多不同站點但服務是一樣的
10/10 18:31, 32F

10/10 18:31, 7年前 , 33F
你又想要讓他們所有資料總結,就會設很多個db,設計大
10/10 18:31, 33F

10/10 18:32, 7年前 , 34F
概會是資料進去以後固定TRIGGER或跑PROCEDURE分別在抓
10/10 18:32, 34F

10/10 18:32, 7年前 , 35F
到別的表格上面去做總結
10/10 18:32, 35F

10/10 18:32, 7年前 , 36F
查詢某些資料的話就設計個動態db去另外一個db查詢,這
10/10 18:32, 36F

10/10 18:33, 7年前 , 37F
樣整個效率會高非常多又簡單,大概是這樣
10/10 18:33, 37F

10/11 19:00, 7年前 , 38F
樓上正解
10/11 19:00, 38F
文章代碼(AID): #1RkieBY1 (Soft_Job)
文章代碼(AID): #1RkieBY1 (Soft_Job)