首页 > 开发 > MySQL > 正文

怎么样实现MYSQL数据库分表?

2017-09-08 09:10:19  来源:网友分享

假设一个论坛帖子按板块分为N个表

thread_bbs1
thread_bbs2
thread_bbs3
....
thread_bbsN

那一个用户发布的帖子就会散落在N个表里,如果有个业务需要查看用户的所有帖子总数并按时间排序用户的所有发帖,就要join所有的表?

应该怎么样合理的分表呢?

解决方案

这个问题不在于如何分表和查询,而在于如何做 数据冗余

你需要将用户发帖的基本信息用另一些表来存储,比如叫做 thread_user*,这些表按照用户 id 分表,内容包括用户 id、帖子 id、发帖时间等你需要的信息。

每次创建帖子的时候需要同时写两份,thread_bbs* 和 thread_user*,读的时候按需读取对应的表就可以。