sql – 有关数百万行的连接和表的问题

前端之家收集整理的这篇文章主要介绍了sql – 有关数百万行的连接和表的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须创建2个表:

杂志(这些列有1000万行:id,标题,流派,印刷,价格)

作者(包含以下列的1.8亿行:id,name,magazine_id)

.
每个作者都只能写一本杂志,每本杂志都有更多的作者.

所以,如果我想了解Motors Magazine的所有作者,我必须使用这个查询

SELECT * FROM Author,Magazine WHERE ( Author.magazine_id = Magazine.id ) AND ( genres = 'Motors' )

这同样适用于“打印和价格”列.

为了避免与数百万行的表连接,我想使用这个表:

杂志(这一栏有1000万行:id,title,价格)

作者(此列有1.8亿行:id,magazine_id,打印,价格)

.
而这个查询

SELECT * FROM Author WHERE  genres = 'Motors'

这是一个好方法吗?

我想让它跑得更快

我可以使用PostgresqlMysqL.

解决方法

不,我不认为如您所描述的那样复制信息对于关系数据库来说是一个很好的设计.

如果您更改给定杂志的类型或价格,则必须记住在重复信息的所有作者行中更改它.如果您有时忘记,最终会导致数据异常.你怎么知道哪一个是正确的?

这是relational database normalization的一个优点,用于表示冗余最少的信息,因此您不会出现异常.

为了让它跑得更快,我想你要做的是什么,你应该学习how to use indexes,特别是covering indexes.

猜你在找的MsSQL相关文章