为了账号安全,请及时绑定邮箱和手机立即绑定

mysql无限水平分表之后如何查询一部分数据并分页显示?(php)

mysql无限水平分表之后如何查询一部分数据并分页显示?(php)

PHP
婷婷同学_ 2019-03-02 12:28:13
图片上传、显示项目相册表 album (字段:album_id userid title ...)图片表 photo (字段:photo_id albumid path ...)一个相册包含多张图片一天上传的图片比较多,考虑水平分表,而且是无限分表,每次分10张表,数据达到一定量之后继续分表相册表按照userid来分表,userid取模10,这样就是album_0 album_1 ... album_9数据达到一定量之后继续分表userid取模20,这样就是alnum_10 album_11 ... album_19以此类推,可以无限分表photo表类似按照albumid分表,也是无限分表现在的问题是无限分表后怎么查询某个用户的相册,比如userid=123456这个用户的相册,他的相册可能在不同的数据表中,怎么查询出来,分页显示?循环查询album_0 album_1 ... album_9 alnum_10 album_11 ... album_19...效率太低,估计不行
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

你的分表原则很不对,在分表后,你的用户id始终不在同一个表中.这个就导致你的数据如果一旦增多就需要跨表查询.对于分页来说更是难上加难.对于你的数据归档来说,非常不好处理.建议设置好你分表的基数.如果说10个太小了,建议就从100开始.这样数据限制数就可以更大.尽可能不要使用无限分表.

查看完整回答
反对 回复 2019-03-02
?
ibeautiful

TA贡献1993条经验 获得超5个赞

你都按照用户ID多相册做了拆分了,如果按照用户ID取模计算,同一个用户的相册怎么就会存到不同的表中呢????

查看完整回答
反对 回复 2019-03-02
  • 2 回答
  • 0 关注
  • 1639 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信