数据库设计上的菜鸟问题

发布于 2022-09-04 09:40:22 字数 179 浏览 14 评论 0

不知道怎么简说,直接详说吧。
比如现在有一个订单表,有字段发货人id。现在的实际情况,经常会用到需要按照发货负责人进行查询订单,所以需要先找负责人下的发货人,再去查找订单。
假设用户表非常大,订单表也是数据量非常大,所以在订单表里面直接加了个发货负责人字段,于是省去了连表查,请问这样效率有更高吗,高多少?这样设计是否合理?为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

绻影浮沉 2022-09-11 09:40:22

这样做效率肯定会高,单表查询肯定比联表查询效率高,尤其是在数据量很大的时候,因为多表联合查询指不定用到什么,譬如using temporary。具体可以explain。单表的话建立合适的索引查询速度是很快的。至于这样设计是否合理。有的时候是很合理的。往往来说设计优秀的表结构也是一项很重要的事情。通过增加一个字段来提高查询的效率有的时候也是一种解决方案。至少我自己也这么做过。也见别人做过。只是不要这样滥用。其实针对具体项目也不会有很多种这种情况。所以如果能提高效率的话,这样用也没问题。

时光无声 2022-09-11 09:40:22

有的时候冗余是必要的,空间换时间

踏雪无痕 2022-09-11 09:40:22

我觉得没有任何问题,效率确实会提升,我就是这样设计的。有的时候为了效率,可以适当违反范式。范式只是一个指导意见,并不是法律。不过要注意的是,负责人id和负责人名字都最好做好索引

吻泪 2022-09-11 09:40:22

关联表替代关联查询 效率肯定比你一直关联查询写一堆连接的sql语句的强。

深者入戏 2022-09-11 09:40:22

个人觉得有些地方冗余还是有必要的(有些人说什么规范不要冗余)。。本身查询的时候要得信息是AB表的内容,还要把一个C表关联进来作为AB联系的媒介也不合理还降低查询效率。。

凤舞天涯 2022-09-11 09:40:22

反范式化可以很好的避免关联。有时候还是很有必要使用的。

自此以后,行同陌路 2022-09-11 09:40:22

题主你这就是典型的反范式设计啊,不过在这之前你先百度一下数据库三大范式。然后自己考量是否继续使用反范式设计才是最好的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文