数据库设计
来源:17-1 课程总结
![](http://img1.sycdn.imooc.com/user/54584e120001811202200220-100-100.jpg)
bearsmall
2018-04-24
有一张表table1,有两百多万条记录,table1表中有一个字段state可为1或0(state为0的数据量占99%,state为1的数据量占1%)。大量的地方需要用到state为1的数据。state为0的数据极少使用到(极少用到不代表不用,不能丢弃)。现在有两种方案:1.给state字段建索引,这样查询state为1的数据的时候会快很多。2.单独建一张表存放state为1的数据。在需要用到state为1的数据的时候直接去table_new新表获取。没有实际测试过两个在性能上的差异。现在能知道是就是新建一张表在获取state为1的数据的时候方便很多,但是可能需要额外考虑一下table1和table_new这两张表在业务上的同步问题。不知道怎么取舍?
写回答
2回答
-
Jimin
2018-04-25
你直接回复,会带来我看不到有待解决问题。下次提问完问题,尽量在原来问题上修改吧。
既然state=0的数据很少,你完全可以特殊处理,放到其他表或组件里存储是可以的。每次处理涉及到state=0时,走特殊处理流程就可以了。我个人感觉是可以换个思路处理的
00 -
bearsmall
提问者
2018-04-24
不对,拆表那应该是state分开存储:table1存state=0,table_new存state=1。这样一来好像不存在两张表业务上进行同步。00
相似问题