Discuz!使用问题、建议、BUG等请到论坛反馈以便获得及时帮助,大型问题建议走付费途径。

Discuz! X1.5 最让人期待的亮点之一就是主题和帖子分表功能,我们在重构代码的同时,也把通过分表技术如何能给站点带来稳定的保障和良好架构放在首要的位置,最终实现了分表这一伟大的工程,分表后的主题和帖子进行了很好的存档和存放,这些都是其它论坛所不能及的。

帖子分表有三种类型:主表、副表、存档表。

1、主表必须有并且只有一个,用于存放新主题的帖子;

2、副表最多有一个,作为主表内容的补充,可与主表联合在后台进行批量更新、删除等操作;

3、存档表可有任意多个,用于归档旧帖子,不参与后台的批量管理操作,但可以进行浏览、回复;

4、如果当前主表内帖子过多,可以创建一个新的主表,此时原来的主表将变成副表,原来的副表(如果存在)将变成存档表,新发的主题帖将存放在新的主表中。

是不是觉得上面的讲解看起来很复杂呢,其实操作起来非常简单。下面给大家讲讲如何去实际操作,因为牵涉到数据,所以强烈建议大家如果要进行分表的话,请详细看一下以下的操作过程。

一、如何对帖子进行分表和管理

操作路径:【后台】=>【站长】=>【帖子分表】

第一次访问帖子分表功能,会看到默认拥有一个主表,名称为 pre_forum_post,此表为安装 Discuz!X1.5 后的标准帖子表。新添加的表会自动以“pre_forum_post_数字”的方式进行命名,无需人工干预。

如果当前主表内帖子数很多,数据大小已经超过 10G 可以点击列表下方的“添加主表”创建一个新的主表。添加新的主表后,会影响之前的表类型设置,原来的主表将变成副表,原来的副表(如果存在)将变成存档表,新发的帖子将存放在新的主表中。

点击列表下方的“添加存档表”,便可以添加一个新的存档表,添加存档表不会影响之前的表类型设置。通过每个分表后面的类型,可以重新设置该表的表类型,设置好后,点击列表下方的“更新表类型”来保存修改。“重置 Post ID”用于重新计算当前所有帖子表中pid的最大值,这个值加1便是下一个新帖子的pid。例如计算出当前所有帖子表中pid 的最大值位1000,某一个用户的一个新回复的帖子pid便是1001。

点击每个帖子分表后面的“删除”可以删除该分表,只有空表可以被删除。当主表被删除后,列表中的最后一个分表会自动成为主表。

需要注意的是:

1、在进行分表操作的时候建议您关闭站点,并在站点访问量较小的情况下操作,如晚上 11 点以后,以免影响会员访问。

2、主表被删除后将无法恢复。

二、帖子移动

移动帖子也必须在论坛关闭的情况下进行。

主表、副表、存档表中的数据可以互相移动,有点类似于帖子在版块中的移动。使用“帖子移动”功能可以在各个分表之间移动帖子。帖子移动涉及大量的数据转移,所以需要关闭论坛后使用。为防止数据库在移动过程中出现问题,请先进行数据备份。

移动帖子需要两步:

第一步,根据提供的条件搜索出要移动的主题帖

“在以下主题 (thread) 表中检索”会列出主题表存在的所有分表,指定其中一个主题分表,在其中进行搜索。“所在分表”会列出帖子表存在的所有分表,指定其中一个主题分表,在其中进行搜索。点击“更多选项”会出现更多搜索条件。

第二步,选择搜索出的帖子,然后选择目标分表,进行帖子移动。

移动操作可能需要一段时间,请耐心等待。移动之后,可以从分表管理的分表列表中查看到每个分表的帖子数。

注意事项:您移动帖子的时候一定要看清楚是把那个表中的帖子移动到哪个表中,以免发生移动后不知道移动到哪里找不到帖子的情况,以免浪费您的时间。

{lang scrolltop}