数据库设计

来源:17-1 课程总结

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时,走特殊处理流程就可以了。我个人感觉是可以换个思路处理的

0
0

bearsmall

提问者

2018-04-24

不对,拆表那应该是state分开存储:table1存state=0,table_new存state=1。这样一来好像不存在两张表业务上进行同步。
0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程