WordPress 数据库维护:你需要了解的内容

WordPress 数据库是网站中无人留意、直到变慢才被关注的部分。本文介绍它包含什…

Network and database wires representing WordPress database maintenance

每个 WordPress 网站背后都有一个数据库,但几乎没有人会去查看它。数据库保存着你的文章、页面、用户、设置、评论,以及你安装过的每个插件的运行数据。它随着时间悄悄增长,而旧的 WordPress 数据库中的大部分数据并不是真正的内容,而是多年插件更替、修订版本和废弃选项积累下来的”陈年尘埃”。

数据库维护并不光鲜,但它对网站速度、备份大小以及出问题时恢复的难易程度都有切实影响。本文将说明 WordPress 数据库里有什么、它为什么会增长,以及如何在不破坏网站的前提下清理它。

核心数据表

标准的 WordPress 安装大约有十几张核心数据表。最重要、值得了解的有:wp_posts,保存所有文章和页面内容;wp_postmeta,保存与这些文章关联的元数据;wp_options,保存全站设置和大量插件数据;wp_users 和 wp_usermeta,保存账户及其元数据;wp_terms 和 wp_term_relationships,处理分类和标签;以及用于评论的 wp_comments 和 wp_commentmeta。

插件通常也会创建自己的数据表。SEO 插件、安全插件、表单生成器、电商平台和分析工具往往会各自添加若干张表。一个使用充分的 WooCommerce 网站,除了 WordPress 核心表之外,可能还有 40 到 50 张表。

是什么让数据库膨胀

有几种常见情形会让 WordPress 数据库相对于网站的实际内容过度膨胀。

  • 文章修订版本。每次编辑文章,WordPress 都会保存一个新的修订版本。默认情况下没有数量限制。一个经过多年修改的页面可能有数百个修订版本,每个都完整存储在 wp_posts 中。
  • 自动草稿。WordPress 会定期自动保存你的工作。从未清理的旧自动草稿会不断累积。
  • 瞬态数据(Transients)。插件使用 WordPress 的瞬态 API 来缓存短期数据。缓存过期后,条目并不总是被及时删除。过期的瞬态数据会在 wp_options 中累积,可能增长到数万行。
  • 孤立的元数据。文章被删除时,它在 wp_postmeta 中的关联行并不总是会被清理。用户和评论也是如此。
  • Action Scheduler 日志。WooCommerce 等插件使用 Action Scheduler 处理后台任务。每次运行都会被记录,日志增长迅速。在繁忙的商店中,日志表可能有数十万行。
  • 垃圾评论和回收站评论。即使过滤得当,未清理的评论表也可能变得很大。
  • 已卸载插件的残留。许多插件在卸载时并不会删除自己的表和选项。一个在使用周期内尝试过五十个插件的网站,数据库中可能仍残留着其中四十个的数据。

为什么这很重要

臃肿的数据库未必总会带来明显问题,但它会让一切都略微变慢。页面加载会花更多时间等待数据库查询。后台页面渲染更久。备份变大、完成更慢。从备份恢复也更耗时,而这在恢复过程中尤为关键。

干净的数据库更快、更小,也更易于操作。单独来看改善很少是戏剧性的,但与其他维护工作结合起来,它有助于让网站保持响应迅速。

安全的数据库维护

在进行任何数据库操作之前,先做一次经过验证的备份。数据库清理这类操作大多数时候快速而安全,其余时候则可能是灾难性的。一次备份的代价是十五分钟。没有备份的代价,可能是整个网站。

有了备份之后,值得按顺序执行的清理任务如下。

  • 在 wp-config.php 中限制文章修订版本。将 WP_POST_REVISIONS 设为一个较小的数字,可以限制 WordPress 为每篇文章保留的修订版本数量。五是一个合理的默认值。
  • 清空回收站中的文章、评论以及任何自定义内容类型。大多数清理插件都能安全地完成这一步。
  • 删除过期的瞬态数据。WordPress 有内置函数可处理这一点。一些优化插件将其作为一键操作提供。
  • 删除已卸载插件的数据表。这需要谨慎。删除前请确认没有任何已启用的插件还在使用该表。
  • 精简 Action Scheduler 日志,如果你使用 WooCommerce 或任何依赖 Action Scheduler 的插件。较新版本默认会自我清理,但在较旧的安装上则需要手动处理。
  • 重建索引。随着时间推移,索引可能会碎片化。重建索引能让它们更紧凑,并加快查询速度。

有用的工具

有几款插件被广泛用于数据库清理。WP Optimize、Advanced Database Cleaner 以及 Perfmatters 内置的数据库工具都是常见选择。每款都提供一份清理操作清单,供你在执行前审查。请避免那些不向你展示要删除什么、就激进删除数据的插件。

对于较大的网站,正确的做法往往是使用 phpMyAdmin、Adminer 或 wp cli 命令行工具直接操作数据库。这需要更多谨慎,但能提供更多控制。

数据库维护应多久做一次

对大多数企业网站而言,每季度一次是合理的频率。高流量电商每月一次更为稳妥。在任何重大插件迁移或内容清理之后,值得额外做一轮。数据库保持得越小,每一次备份、恢复和审计就越轻松。

如果你希望 Smart Coding 审查你的 WordPress 数据库、找出其中的冗余,并在备份安全网的保护下进行细致清理,联系 Defyn。这是一项不张扬的改进,会叠加到你所做的每一项其他维护工作之上。

Claire Smith 的头像
Sponsored Loved this story? Defyn turns articles like this into the websites your competitors wish they had. Talk to us → defyn.com.au