Mic*_*ris 2 mysql rdbms join nosql
如果我有 2 张表员工和部门
1)在服务器端加入数据
SELECT * FROM employee CROSS JOIN department;
Run Code Online (Sandbox Code Playgroud)
我们这里只使用一个连接来获取数据
2)要在客户端加入数据,我们将获取 2 个表并使用 2 个连接
SELECT * FROM employee;
Run Code Online (Sandbox Code Playgroud)
并将其存储在一个数组中
SELECT * FROM department;
Run Code Online (Sandbox Code Playgroud)
并将其存储在另一个数组中,并通过在客户端使用例如 Javascript 进行编程来合并这两个数组。
第二种方法可能更复杂,但优点是您可以将员工表存储在一个服务器上,将部门表存储在另一台服务器上,这样您可以减少自己服务器上的负载并使每台客户端机器完成其工作
但是我在问我是否要加入 2000 表哪个性能更好,速度更快:在客户端或服务器端进行连接?
好问题(尽管标签不好,正如已经指出的那样)。
如果在服务器上完成连接肯定会更快,但如果每个表只有 1,000 行,您的结果集将是 1,000,000 行,并且必须将它们发送回客户端。如果您在客户端加入,您只会发回 2,000 行。根据您需要在客户端执行的操作,可能值得进行单独的查询以减少客户端和服务器之间的流量。再说一次,用 JavaScript 加入这两个集合也不会很快。
所以这是一个模糊的答案:这完全取决于结果集的大小;你必须试验。
请注意,此答案CROSS JOIN
仅适用于。毫无疑问,所有其他连接类型最好在服务器上完成。