MySQL分表 不合并表查询 要如何操作?

WBOY
풀어 주다: 2016-06-17 08:32:25
원래의
1139명이 탐색했습니다.

谢谢各位大侠,女侠帮忙。
刚接触mysql分表碰到一些问题,实在是不懂,想知道这些问题的解决办法,也许有更好的办法,也麻烦在帮助我的同时告知。
目前有10张表 article0,article1......article9,
表结构 id, uid ,categroyId acticleName, content,addTime
id 通过一张自增id来取得 取模插入对应的表
uid 用户id
categroyId 分类id
acticleName 文章id
content 内容
addTime 添加时间
查询的时候是合并这几个表 查询了,感觉这样不好,合并表了 还有必要分表吗
如果不使用合并查询
1 需要查询 uid=100的所有文章要怎么写
2 需要按需查询以往十条文章

学习用了 谢谢大家

ps 分表规则可能有问题,想法是均匀的插入各表 这样是不是不好

回复内容:

谢邀……
首先列出你对表查询的需求,然后针对业务需求进行分表,不能单纯的按照某个分表方案(文章id取模、按照时间分表等等)。
比如:如果你的需求集中在查询某个用户的文章信息,那可以用uid作为分表的依据。如果其他需求只有一项是读取最新10条,那你可以维护一张最新文章表(只存储最近的10条或者100条文章,有变化就更新)
另外你的文章数量真的已经多到必须分表了吗?如果数量没有达到一个特别大的数量级,可以尝试垂直切分,将经常读取的字段放在一张表,不经常读取的字段拆出来放在另外的一张表里,减少单表的大小,建立好合适的索引,妥妥的查询起来没有问题的……
最后就是表优化完毕后,前台读取的时候,是不是可以做些缓存或者将文件静态化等等……
以上…… 我来晚了,基本上就是 @王金亮说的那样了。再补全也是一个原理。懒得说了,希望金亮能多补一些?我就什么都不说了,折叠我吧,我顶金亮一票。 可以使用merge引擎加myisam引擎实现分表。 前面已有很好的回答,补充一下:如果觉得各种条件查询都会用到,按时间分表很可能是最好的选择。
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿