MySQL加入是一项繁重的工作吗?

MySQL加入是一项繁重的工作吗?,mysql,sql,database,join,database-design,Mysql,Sql,Database,Join,Database Design,我有一个小问题。MySQL加入是一项繁重的工作吗?例如,在我的一个项目中,我在一个查询中有大约10个连接。这不好吗 这是一个大项目,我有很多表,因为我经常听说把整个数据库分成几个小部分是个好主意。这正是我所做的,结果是10次连接。那么解决方案是什么呢?当你需要加入时,你就加入了,所以这是否是一个繁重的操作并不重要 在一个好的数据库中,每个实体都有一个表,例如产品、客户、订单。如果你仔细观察,你会发现一个订单由一个标题和多个位置组成,每个位置都指向一个产品。所以这必须是两个订单表:订单头和订单细节

我有一个小问题。MySQL加入是一项繁重的工作吗?例如,在我的一个项目中,我在一个查询中有大约10个连接。这不好吗


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

当你需要加入时,你就加入了,所以这是否是一个繁重的操作并不重要

在一个好的数据库中,每个实体都有一个表,例如产品、客户、订单。如果你仔细观察,你会发现一个订单由一个标题和多个位置组成,每个位置都指向一个产品。所以这必须是两个订单表:订单头和订单细节。以四张表为例。你不会像法国客户和美国客户或廉价产品和昂贵产品那样进一步细分,因为客户的国家仅仅是一个属性,产品是否便宜取决于其价格,价格也仅仅是属性;实体仍然是客户和产品

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


回答这个问题:不,在一个查询中有十个连接并不坏。但是,如果您盲目地按照建议创建许多表,您可能希望有人查看您的数据库设计。

您在需要加入时加入,因此这是否是一项繁重的操作并不重要

在一个好的数据库中,每个实体都有一个表,例如产品、客户、订单。如果你仔细观察,你会发现一个订单由一个标题和多个位置组成,每个位置都指向一个产品。所以这必须是两个订单表:订单头和订单细节。以四张表为例。你不会像法国客户和美国客户或廉价产品和昂贵产品那样进一步细分,因为客户的国家仅仅是一个属性,产品是否便宜取决于其价格,价格也仅仅是属性;实体仍然是客户和产品

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


回答这个问题:不,在一个查询中有十个连接并不坏。如果您盲目地按照建议创建许多表,您可能希望有人查看您的数据库设计。

Benchmark。这是唯一知道的方法。连接并不总是相同的。它取决于表大小、它们的联接方式、收集的统计信息等。它取决于联接、数据、索引等。100个联接可能很好,或者2个联接可能太多,具体取决于环境。基准测试。这是唯一知道的方法。连接并不总是相同的。它取决于表大小、它们的联接方式、收集的统计信息等。它取决于联接、数据、索引等。100个联接可能很好,或者2个联接可能太多,具体取决于环境。