一对多SQL JOIN会生成大量相同的副本,其中一个是#34;这是一个好习惯吗?

时间:2017-08-24 10:34:28

标签: mysql join

我需要进行一对多联合SQL查询,例如为所有客户选择所有订单。

一个客户可以有很多订单。

SELECT
  C.firstName,
  C.lastName,
  O.invoiceID,
  O.description
FROM Customers AS C
LEFT JOIN Orders AS O
  ON Customers.ID = Orders.CustomerID

每个返回的行都将包含客户姓名的副本,其中包含不同的订单数据。

我确实需要有客户'结果中的名称,但我不确定是否可以在每一行中不必要地复制名称。这是浪费记忆吗?我是否应该更好地在加入的选择中包含客户ID,然后单独选择以通过客户ID获取客户名称?什么是最佳做法?

更新:我理解权衡取决于它。我的问题是,是否有一些内部DBMS或驱动程序优化(在最流行的DBMS中)通过共享重复字段的内存来防止此类连接选择中不必要的内存浪费。

0 个答案:

没有答案