繁体   English   中英

从架构中删除一对多关系

[英]Removing one-to-many relationshiop from schema

我们目前在MySQL数据库中有两个大表(表A与表B有一对多的关系),我们需要在它们之间加入,出于性能原因,我们想要删除这个连接。

是否有一种明智的方法来获取表B中的行并将它们表示在表A的列(或多列)中? 我们已经研究过使用复合数据类型的数组,但似乎没有一种好的方法来索引这些数据,或者有效地查询它。

我们目前正在使用MySQL,但正考虑转向Postgres。 不过,我们肯定会考虑任何可以解决这个问题的数据库。

考虑使用中间视图 ,它将加快过程。

如果[A] -1 --- n- [B],你也可以将A的外键设置为B,然后不再需要AxB笛卡尔积

该选项将获取应用程序层中的相关数据。 首先从第一个表中获取一行,然后在第二个查询中从第二个表中获取相关的行。 尝试评估两个代码的性能。 这是一个查询和两个查询。

仍然如评论部分所述。 尝试在连接列上添加索引。 尝试使用where条件来限制数据。 最重要的是尝试限制结果集,即作为输出所需的行数。 使用限制将减少获取其他行所需的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM