表结构设计是否需要冗余字段

lvia。 2016-06-01 11:54:55
今天看了一个同事设计的数据表,有了一小个问题:

表结构是这样的
A表(id,col1,col2) 数据规模不大,上限基本不会超过1万
B表(id,a_id,col1,col2...) 数据规模也不大,10万以内,与A表关联
C表(id,a_id,b_id,col1,col2) 数据规模比B表大一点,不超过两倍,同时与A表和B表关联

我的问题就是C表可以关联B表再关联A表完全实现查询,多关联A表ID作为冗余字段说是为了查询快一点,有这个必要吗,有什么好处坏处?
...全文
746 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvia。 2016-06-17
  • 打赏
  • 举报
回复
引用 4 楼 zhu19774279的回复:
如果数据量不大,冗余不会有特别多的性能提升,这种情况下并不推荐字段冗余,毕竟两张表的一致性很可能会由程序控制,所有的操作都要同时涉及两张表,任何一段代码漏掉一张表的操作,都可能导致数据不一致。
嗯,我一开始考虑的就是数据可能偏差和占用空间增大,不过大数据量的时候会考虑使用冗余字段
anwll 2016-06-13
  • 打赏
  • 举报
回复
读的时候冗余的列可以一次I/O读入,如果是多个表,毕竟会读到其他的page,适当冗余可以得,毕竟现在盘还是便宜的
zhu19774279 2016-06-03
  • 打赏
  • 举报
回复
如果数据量不大,冗余不会有特别多的性能提升,这种情况下并不推荐字段冗余,毕竟两张表的一致性很可能会由程序控制,所有的操作都要同时涉及两张表,任何一段代码漏掉一张表的操作,都可能导致数据不一致。
lvia。 2016-06-01
  • 打赏
  • 举报
回复
引用 1 楼 不想长大啊的回复:
字段冗余,大部分的目的就是为了减少关联,虽然现在的主流数据库都是关系型数据库,但是说实在的,关联会消耗大量的cpu,内存,所以如果可以预见到会有大量的数据,且会有关联,可以考虑把字段冗余
嗯,可能是我有点死板了,不能忍受可能用不到的东西。不过这样一个字段空间消耗不大,而且能提升速度,现在想想是可以接受的
LongRui888 2016-06-01
  • 打赏
  • 举报
回复
字段冗余,大部分的目的就是为了减少关联,虽然现在的主流数据库都是关系型数据库,但是说实在的,关联会消耗大量的cpu,内存,所以如果可以预见到会有大量的数据,且会有关联,可以考虑把字段冗余
ACMAIN_CHM 2016-06-01
  • 打赏
  • 举报
回复
建议直接做个试验验证一下。 有冗余字段肯定会查询快一些,但能快多少则建议自己测试。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧