MySQL JOIN操作繁重吗?

时间:2018-09-12 14:57:31

标签: mysql sql database join database-design

我有一个小问题。 MySQL JOIN操作繁重吗?例如,在我的一个项目中,一个查询中有大约10个联接。这不好吗?

这是一个很大的项目,并且我有很多表,因为我经常听说将整个数据库分成小部分是个好主意。那正是我所做的,结果是10个join。那么解决方案是什么?

1 个答案:

答案 0 :(得分:3)

您需要加入时加入,所以这个问题是否繁琐的问题并不重要。

在一个好的数据库中,每个实体都有一个表,例如产品,客户,订单。如果您仔细观察,您会发现订单由一个抬头和许多头寸组成,每个头寸均指一种产品。因此,这必须是两个订单表:order_header和order_detail。该示例有四个表。您不会像法国客户和美国客户或廉价产品和昂贵产品那样进一步细分,因为客户所在的国家仅是属性,而产品是否便宜取决于其价格,价格也仅是属性;这些实体仍然是客户和产品。

话虽这么说,“将整个数据库分成几部分是一个好主意” 是一个奇怪的建议。每个实体有一个表,对于某个地址数据库,可能只有两个表;对于大公司的产品数据库,可能只有一千个表。

要回答这个问题:不,在查询中有十个联接也不错。但是,如果您盲目地遵循建议创建许多表,那么您可能希望某人查看您的数据库设计。