主題分表功能可將 forum_thread 表 (包含主題標題、創建時間等信息,但不包含主題及回覆內容) 分在多個數據表中,減輕單表的訪問壓力,提高網站運行效率,適合主題數很多並且運行效率受到影響的站點使用。
主題分表有兩種類型:主表和存檔表。
1 、主題分表功能可將 forum_thread 表 (包含主題標題、創建時間等信息,但不包含主題及回覆內容) 分在多個數據表中;
2 、創建新的主題存檔表後,可使用主題移動功能將特定主題移動到存檔表中;
3 、移動到存檔表中的主題,會在主題所在的版塊下建立一個存檔區 (名稱可自定義),通過存檔區可瀏覽存檔表中的主題;
4 、存檔表中的主題,只供瀏覽,不可回覆、評分,不能進行管理操作,但可以刪除和移動到非存檔區。
首先,根據主題表大小,建立存檔表,存檔表以 pre_forum_thread_數字 自動命名,如下圖所示,建立了一個存檔表:
一、分表管理
主題分表中其中主表有且只有一個,用於存放新主題;存檔表可有任意多個,其中的主題,只供瀏覽,不可回覆、評分,不能進行管理操作,但可以刪除和移動到非存檔區。
第一次訪問主題分表功能,會看到默認擁有一個主表,名稱為 pre_forum_thread,此表為安裝 Discuz! 後的標準主題表。此主表信息不可刪除,不可更改。
新添加的存檔表會自動以 「pre_forum_thread_數字」 的方式進行命名,無需人工幹預。
點擊列表下方的 「添加存檔表」,便可以添加一個新的存檔表。
創建新的主題存檔表後,可使用主題移動功能將特定主題移動到存檔表中。移動到存檔表中的主題,會在主題所在的版塊下建立一個存檔區 (名稱可自定義),通過存檔區可瀏覽存檔表中的主題。修改該存檔表在板塊的顯示名稱後,點擊列表下方的 「更新表信息」 來保存修改。
「更新版塊存檔」 用於更新在主題存檔表中的主題所在的所有版塊的主題存檔信息。例如有兩個主題存檔表,這兩個表中的主題屬於 A 、 B 、 C 三個版塊,「更新版塊存檔」 後,便會在這些版塊出現存檔區的顯示提示;反之,如果某一個版塊中沒有主題存在於主題存檔表中,則會通過 「更新版塊存檔」 來刪除此板塊出現的存檔區。如下圖所示:
點擊每個主題分表後面的 「刪除」 可以刪除該分表,只有空表可以被刪除。
二、主題移動
主題移動功能可將特定的主題在原始表 (forum_thread) 和新建的主題存檔表之間移動。移動主題之前,請確定存在至少一個主題存檔表 (表名為 forum_thread_1 、 forum_thread_2……) 。
主題移動涉及大量的數據轉移,需要關閉論壇後使用。為防止數據庫在移動過程中出現問題,請先進行數據備份。
移動主題需要兩步:
1 、根據提供的條件搜索出要移動的主題
「搜索 thread 分表」 會列出主題表存在的所有分表,指定其中一個主題分表,在其中進行搜索。
點擊 「更多選項」 會出現更多搜索條件。
2 、選擇搜索出的主題,然後選擇目標分表,進行主題移動。
移動操作可能需要一段時間,請耐心等待。
移動之後,可以從分表管理的分表列表中查看到每個分表的主題數。
最後,需要給大家説明的是分表功能可以將主題、帖子分在不同的數據表中,適合帖子量很大並且運行效率受到影響的站點,我們建議您考慮對帖子和主題進行分表,把主題和帖子表這個存放大量主題帖子的表分成若干個表,大大減少數據庫查詢的時間,降低數據庫 「無謂」 的消耗。