1

我正在构建一个相当大的 CodeIgniter 应用程序,并从尽可能好地规范化数据库开始。

让我开始,该网站没有响应缓慢或出现任何问题。只是想知道您对许多联接有何看法?

$this -> db -> join('A', 'B.user_id = A.id', 'left');
$this -> db -> join('C', 'A.id = C.user_id', 'left');
$this -> db -> join('D', 'B.project_id = D.id', 'left');
$this -> db -> join('E', 'E.client_id = C.id', 'left');

如您所见,这将仅在连接查询中调用 5 个表。非常需要获取应用程序数据的每个细节,并且 3 个表只是链接表。

我可以在这样的连接上吃些诚实的洋葱吗?

注意:我需要区分表,但我正在等待,直到其他所有内容都经过代码优化

问候,克里斯

4

1 回答 1

1

我目前正在重新开发 codeigniter 应用程序/站点。为了提供更高的灵活性并限制提取冗余数据,我将许多单个大表拆分为多个小表。这导致我的一些管理查询最多有 8 个连接(我认为管理查询不是问题。)

在前端,许多查询已从无连接更改为最多 5 个,这实际上提高了站点的速度,因为与旧的大表布局相比,我提取的数据仍然更少。

简而言之 - 我认为多个连接用于减少被提取的数据量并没有任何问题,并且在任何大型应用程序中都是可以预期的。

但这就像您得到的任何其他答案一样是一种意见,并且都取决于您的表结构和您使用的索引,而不是连接数。

于 2012-10-04T15:16:39.270 回答