如果我有2個表員工和部門這是在性能客戶端更好地連接或服務器端連接
1)在服務器端
SELECT * FROM employee CROSS JOIN department;
我們只用連接數據一個連接在這裏抓取數據
2)在客戶端加入數據我們將抓取2個表並使用2個連接
SELECT * FROM employee;
並將其存儲在一個陣列,並且還
SELECT * FROM department;
並將其存儲在另一個數組和,並使用例如Java腳本在客戶端側通過編程合併2個陣列。
第二種方法可能更復雜,但優點是您可以將employee表存儲在一臺服務器上,並將部門表存儲在另一臺服務器上,這樣可以減少您自己的服務器上的負載,並使每臺客戶機執行其操作工作
但是我問,如果我想參加2000表這將是更好的性能和更快:做在客戶端或服務器端連接?
這是多麼糟糕的一組標籤。請關注* one *數據庫方法。在任何情況下,**執行加入服務器總是更好**(多年的優化,智能查詢計劃,索引使用,多重聯接實現,更少的請求,更小的數據傳輸等) - 我將不得不有一個非常具體的案例(由經驗證據支持),然後我決定採取不同的做法。按照他們的意圖使用這些工具。 (但是,這個簡單的CROSS JOIN - ick! - 在這個問題上引發了一些小問題。) – user2246674 2013-05-13 21:38:59
爲什麼這個問題標記爲MongoDB? – vinipsmaker 2013-05-13 21:45:58
我打算將關聯數據作爲文檔存儲在MongoDB中的集合中,並在客戶端進行連接 – 2013-05-13 21:48:55