开发者社区> 问答> 正文

php+mysql如何设计分表,快速查询?

一个附件表 attachments ,2000w数据,慢啊。
听说分表方案不错,于是我学着分了
attachments 主表
--aid 主键
--typeid 分类id
--uid 用户id
--tableid 子表id
子表名是这样的 attachments_子表id ,通过aid与主表关联。
attachments_0 , attachments_1 , attachments_2 , ……
如果是查询单条记录,先从主表中取出tableid ,然后再去tableid对应的子表中取剩下的信息。也就2次查询。
但是列表页的查询该怎么办?
总不能先从主表中取出结果集,然后foreach循环,再根据每个tabelid到子表中查询其他信息吧?那样一个列表页得查询几十次啊。
求大神指导。

展开
收起
落地花开啦 2016-02-12 13:36:58 2596 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    看具体的业务情况,如果经常需要大范围的显示附件列表,那最好方法是KVDB,查询时间复杂度是常量,这也是Google面对超量数据的解决办法,bigTable如果是有明显业务规律,比如时间范围,那就按照这个规律分表,基本常规列表不会有太多表(按照时间顺序多次查询)

    2019-07-17 18:41:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像