Home >Backend Development >PHP Tutorial >MySQL分表 不合并表查询 要如何操作?

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

WBOY
WBOYOriginal
2016-06-17 08:32:251184browse

谢谢各位大侠,女侠帮忙。
刚接触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引擎实现分表。 前面已有很好的回答,补充一下:如果觉得各种条件查询都会用到,按时间分表很可能是最好的选择。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn