一个附件表 attachments ,2000w数据,慢啊。
听说分表方案不错,于是我学着分了
attachments 主表
--aid 主键
--typeid 分类id
--uid 用户id
--tableid 子表id
子表名是这样的 attachments_子表id ,通过aid与主表关联。
attachments_0 , attachments_1 , attachments_2 , ……
如果是查询单条记录,先从主表中取出tableid ,然后再去tableid对应的子表中取剩下的信息。也就2次查询。
但是列表页的查询该怎么办?
总不能先从主表中取出结果集,然后foreach循环,再根据每个tabelid到子表中查询其他信息吧?那样一个列表页得查询几十次啊。
求大神指导。
看具体的业务情况,如果经常需要大范围的显示附件列表,那最好方法是KVDB,查询时间复杂度是常量,这也是Google面对超量数据的解决办法,bigTable如果是有明显业务规律,比如时间范围,那就按照这个规律分表,基本常规列表不会有太多表(按照时间顺序多次查询)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。