WordPress数据库优化全攻略技巧教程

WordPress 网站的所有组件虽然都至关重要,但数据库无疑是其中最核心的部分。实际上,网站的所有信息——从文章和页面到用户数据和设置——都存储和访问于数据库之中。因此,对 WordPress 数据库进行优化至关重要。一个臃肿且存在性能问题的数据库会显著降低网站的运行速度,影响搜索排名,甚至损害整体用户体验(UX)。这些问题进而会影响到您的流量数据,并进一步削弱您在搜索结果中的表现。在本教程中,我们将从多个维度深入探讨 WordPress 数据库的优化策略,不仅涵盖其基本结构,还将介绍多种实用的优化技术,并推荐一些辅助工具和服务,帮助您保持数据库的持续高效运行。

如何了解 WordPress 数据库结构

简而言之,WordPress 数据库是整个网站的支柱。它几乎承载了所有内容、用户信息、系统设置等关键数据。在 WordPress 平台中,数据库通过“表”来组织和管理不同类型的信息。该平台主要使用 MySQL 或 MariaDB 数据库管理系统,用户可以通过 phpMyAdmin 或 Adminer 等工具进行访问和管理。

使用 phpMyAdmin 访问 WordPress 数据库

WordPress数据库优化全攻略技巧教程

例如,`wp_posts` 表存储帖子和页面内容,而 `wp_users` 表则保存网站用户的相关数据。稍后我们将详细探讨这些表的具体作用。在安装 WordPress 时,系统会自动创建一组默认表格,以覆盖常见的功能需求。然而,随着插件、主题的安装和使用,还会生成额外的表格来存储特定的相关数据。这种模块化设计在功能扩展方面表现出色,但也可能导致表格数量过多而引发臃肿问题。

了解 WordPress 数据库结构的重要性

出于以下两个关键原因,深入理解 WordPress 的数据库结构至关重要:

1. 性能优化:良好的数据库组织能够显著提升数据检索速度,直接关系到网站的加载时间和整体性能。
2. 维护便利:明确各表格与网站不同模块的对应关系,有助于进行高效的故障排查和日常维护。例如,当某个插件出现问题时,可以快速定位并处理其关联的表格。

WordPress数据库优化全攻略技巧教程

定期清理和优化数据库表格是防止其变得臃肿和低效的有效手段。正如我们所知,性能问题会对网站运营产生负面影响。

WordPress 专用表

虽然各类网站都依赖数据库,但 WordPress 拥有自己独特的数据库表类型和功能。若要有效优化这些表,就必须充分了解其结构和作用。虽然无法在此详述所有表格,但有几个表格是您会频繁接触到的:

1. `wp_options`:存储全站设置,是数据库中访问量最大的表之一。保持该表的精简对于优化至关重要。
2. `wp_postmeta`:存放帖子元数据,随着网站发展,这通常会成为数据库中体积最大的表之一。
3. `wp_users` 和 `wp_usermeta`:存储与网站用户及其元数据相关的所有信息。在极少数情况下,如果需要从 WordPress 外部修改密码,可能需要直接操作这两个表。

WordPress数据库优化全攻略技巧教程

需要注意的是,您添加的每个插件或主题都可能会修改数据库结构。虽然主题或插件移除某个表格的情况较为罕见,但定期检查并了解这些潜在变化仍然是维护优化数据库的关键,确保其能够支持而非阻碍网站的性能。

为什么大多数网站需要优化 WordPress 数据库

优化 WordPress 数据库不仅是一种良好的实践,更是大多数希望提供流畅用户体验的网站所必需的。作为网站所有重要数据的集中存储地,数据库的健康状况直接影响网站的性能、速度和可靠性。因此,将定期数据库优化纳入工作流程至关重要,主要原因包括:

1. 提升网站速度和性能:随着时间的推移,数据库会积累一些不必要或冗余的数据,如临时选项、文章修订版本、垃圾评论或过时的草稿。这些冗余数据会降低信息检索速度,优化后可显著提升性能。
2. 改善用户体验:用户期望获得流畅、快速的浏览体验。优化良好的数据库能够加快页面加载速度,提高数据处理效率。简而言之,每一次网站交互都依赖于数据库查询,更高的效率意味着更好的用户体验。
3. 减轻服务器压力:未经优化的数据库会给服务器带来额外负担,因为它需要更努力地查找和提供数据。对于资源有限的共享主机,这种影响尤为显著。
4. 支持网站扩展:随着网站的增长,数据库也会相应扩大。虽然初期可能运行一个较小且易于管理的系统,但复杂性会迅速增加。定期优化可确保数据库在扩展过程中仍能保持高性能。

WordPress数据库优化全攻略技巧教程

简而言之,WordPress 数据库优化能够显著提高响应时间。即使是几秒钟的加载延迟也可能导致跳出率增加和流量损失,这对搜索排名而言绝非好事。

如何进行定期维护和清理

如果您能定期清理和维护 WordPress 数据库,就拥有了保持网站平稳运行的最佳方法之一。然而,随着时间的推移,数据库可能会被不必要的数据充斥,因此建立定期且一致的工作流程至关重要。此外,合理利用可用的工具和服务也能事半功倍。好消息是,WordPress 提供了多种维护数据库的方法。

一个插件就能提供多种优化数据库的方法。WP-Optimize 是一个广受欢迎的解决方案,它在 WordPress.org 上拥有高评分和积极评论,并且是免费的,还会定期更新。虽然我们将在整个文章中展示如何使用该插件进行优化,但您也可以将这些说明应用于其他类似的插件。

WordPress数据库优化全攻略技巧教程

优化前的准备工作

在开始数据库优化之前,有一些简单的任务需要完成:

1. 备份网站和数据库:在进行任何修改前,务必对网站和数据库进行完整备份。这样,如果出现意外情况,您可以在几分钟内恢复网站。
2. 删除未使用的插件或主题:这不仅能解决数据库问题,还能加强网站的安全性。需要注意的是,根据插件或主题的不同,删除后可能会留下不需要的表格。这也是我们优化数据库的原因之一,因此了解哪些插件和主题会留下瞬时数据将有助于后续工作。
3. 登录数据库管理工具:在进行进一步优化之前,应先解决任何数据库错误。这通常涉及选择所有表格,然后使用“Check table”按钮生成报告。如果看到“OK”或类似信息,说明状态良好。但在继续之前,需要解决任何错误,此时请求支持可能是个好主意。

优化数据库表

WordPress数据库优化全攻略技巧教程

优化数据库表是第一步。采用手动方法时,请按照以下步骤操作:

1. 访问 phpMyAdmin 中的 Databases 链接,然后选择您的 WordPress 数据库。
2. 在数据库中,您会看到所有表的列表。只需批量选择所有表,然后从下拉菜单中选择“Optimize table”选项,再点击“Go”。
3. 一段时间后,您会看到一份报告,概述了数据库中每个表的状态。

使用 WP-Optimize 进行优化则更为简单:

1. 前往 WP-Optimize > Database > Optimizations。
2. 点击优化数据库表选项旁边的运行优化按钮。

WordPress数据库优化全攻略技巧教程

插件会运行所有表,然后给您一条成功信息。此时,您就可以继续修改文章了。

清理文章修订版本

WordPress 的文章修订版本系统意味着您所做的每一次保存都会随着时间的推移而增加。您可以使用 SQL 查询轻松地从数据库中删除这些内容。最简单的方法只有一行:

“`sql
DELETE FROM wp_posts WHERE post_type = ‘revision’;
“`

WordPress数据库优化全攻略技巧教程

这将删除表中所有类型的修改职位。不过,其他表中也有相关数据。要捕获并删除所有这些数据,可以使用以下代码段:

“`sql
DELETE FROM wp_posts WHERE post_type = ‘revision’;
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT ID FROM wp_posts);
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);
“`

当然,如果复制和粘贴,应确保使用自己的数据库表前缀。有了插件,这项工作只需几秒钟。与一般的 WordPress 数据库优化一样,WP-Optimize 可让您在 WordPress 中单击按钮即可完成。

删除垃圾评论和垃圾项目

WordPress数据库优化全攻略技巧教程

我们还可以使用 SQL 查询来删除垃圾评论。请注意,在您对评论进行审核时,不需要的评论会在数据库中保留 30 天。这意味着在这段时间内被标记为垃圾邮件的评论将保留在数据库中。您只需在数据库管理工具中输入几行 SQL 语句,就能彻底清除这些评论:

“`sql
DELETE FROM wp_comments, wp_commentmeta USING wp_comments LEFT JOIN wp_commentmeta ON wp_comments.comment_ID = wp_commentmeta.comment_id WHERE wp_comments.comment_approved = ‘spam’;
“`

在 WordPress 中发送到垃圾箱的项目也是类似的情况。可能会有很多内容“悬而未决”,您可以使用另一个 SQL 查询将其删除:

“`sql
DELETE p, pm, tr FROM wp_posts p LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id WHERE p.post_status = ‘trash’;
“`

WordPress数据库优化全攻略技巧教程

与修改文章一样,你也可以在 `wp-config.php` 中设置删除垃圾项目所需的时间值:

“`php
define( ‘EMPTY_TRASH_DAYS’, X );
“`

在 WP-Optimize 中,有三个选项可以帮助您删除垃圾评论和 WordPress 垃圾箱:

1. 删除垃圾评论
2. 删除垃圾箱
3. 删除未批准评论

WordPress数据库优化全攻略技巧教程

还有删除未批准评论的选项。这在某些情况下可能有用,但我们不建议这样做。相反,您可以缓和这些评论,然后在必要时清除它们。

删除未使用的标签

分类标准对 WordPress 非常重要,但随着时间的推移,它们可能会成为一个庞大的集合。这是优化数据库的绝佳用例,与其他技术一样,您可以使用 SQL 查询:

“`sql
DELETE t, tt FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id LEFT JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy = ‘post_tag’ AND tt.count = 0;
“`

WordPress数据库优化全攻略技巧教程

在 WP-Optimize 中,移除未使用标记的选项是“Clean post meta data”。该功能会评估是否有任何孤儿元数据,并将其删除:

使用 WP-Optimize 清除无主的文章元数据

虽然该选项也可能删除类别和其他数据,但这是一个安全的解决方案,尤其是在没有其他帖子或页面使用它们的情况下。

删除 Pingback 和 Trackback

WordPress数据库优化全攻略技巧教程

虽然我们不清楚在当今时代有多少 WordPress 网站使用 pingback 和 trackback,但如果你不关闭设置,它们仍然会扰乱你的数据库。首要任务是检查是否已禁用该选项。这在 WordPress 的“Settings”>“Discussion”屏幕中是一项简单的工作:

WordPress 中的“讨论”设置界面

的 pingback 和 trackback 选项

在“默认文章设置”部分,确保取消勾选“尝试通知文章中链接的博客… “和“允许其他博客发送链接通知(Pingback 和 Trackback)到新文章 ” 选项并保存更改。接下来,返回数据库管理工具并运行以下查询:

WordPress数据库优化全攻略技巧教程

“`sql
DELETE c, cm FROM wp_comments c LEFT JOIN wp_commentmeta cm ON c.comment_ID = cm.comment_id WHERE c.comment_type IN (‘trackback’, ‘pingback’);
“`

虽然类型不同,查询的重点也不同,但两者都与评论位于同一位置。WP-Optimize 为这两种类型分别提供了两个选项:

WP-Optimize 删除 trackback 和 pingback 选项

完成这项工作后,您就不会再在数据库中看到 trackbacks 或 pingback 了!

WordPress数据库优化全攻略技巧教程

使用 WPTurbo 的 WordPress 数据库自动优化功能

您还可以使用闪电博研发的 WordPress 优化插件 WPTurbo 来实现数据库优化。WPTurbo 通过删除修订版本、自动草稿、回收站文章、瞬时数据、垃圾评论、瞬态等不必要的数据来清理您的数据库。因此,您无需输入即可确保数据库保持优化。

WPTurbo 插件

使用 WPTurbo 插件并不是本篇文章的重点,但我们的插件属于开箱即用的类型,站长安装插件后可以快速上手并执行相关优化。再者,WPTurbo 并非单纯的数据库优化插件,除了数据库优化之外,还能够实现 WordPress 瘦身、速度优化和对象存储等功能,多策略组合的形式来实现 WordPress 性能优化。

WordPress数据库优化全攻略技巧教程

如何优化数据库查询以提高效率

优化您使用的数据库查询对于提高 WordPress 网站的性能和速度至关重要。高效的查询意味着更快地检索数据,进而改善加载时间和用户体验。鉴于您可能会使用查询来进行 WordPress 数据库优化,以下是一些关于如何提高查询效率的提示:

1. 优化查询结构:您会注意到,我们在示例查询中没有使用通配符(或星号)。与其使用 `SELECT *`,不如具体到你需要的确切列。此外,尽可能使用 `JOIN` 而不是子查询。子查询的效率可能较低,尤其是在没有良好结构或涉及大型数据集的情况下。
2. 使用查询缓存:Redis 等工具可以将查询结果存储在内存中。这意味着查询结果可以从缓存中提供,而无需下次再查询数据库。

这些都是模糊的提示,但你还可以做很多事情。接下来让我们快速了解一下。

WordPress数据库优化全攻略技巧教程

高级 WordPress 数据库优化和故障排除技巧

索引可以帮助您为数据库添加快速参考指南。它可以帮助数据库服务器在不扫描表中每一行的情况下更快地找到数据。为此,请确定查询中经常使用的列,并考虑为其添加索引。您可以在 phpMyAdmin(或类似软件)中进行操作。首先,单击要添加索引的表,然后转到“Structure”选项卡:

在 phpMyAdmin 中访问表的结构选项卡

接下来,选择要建立索引的列,然后选择表底部的 Index 选项:

WordPress数据库优化全攻略技巧教程

在 phpMyAdmin 中选择索引列

保存更改后,这将为这些列建立索引。

EXPLAIN 语句还可以帮助你了解 MySQL 是如何执行查询的。这可以帮助你发现效率低下的问题,并了解你的查询是如何与索引交互的。要运行该语句,请将其添加到现有查询的前面。运行时,SQL 将分解如何执行查询:

运行以 EXPLAIN 语句为前缀的查询的输出结果

WordPress数据库优化全攻略技巧教程

尽管 MySQL 文档几乎涵盖了关于 EXPLAIN 语句的所有知识,但我们无法在此一一介绍。

监控性能

监控 WordPress 数据库的性能是网站运行的重要组成部分。它有助于在潜在问题升级之前将其识别出来,并确保网站保持高效和响应性。我们在本文中介绍的许多技术都将用于性能监控,例如在缓慢查询中使用 EXPLAIN。然而,还有更多的方法可以使用。事实上,phpMyAdmin 在服务器的 Status 选项卡中包含了自己的性能指标:

phpmyAdmin 状态界面

WordPress数据库优化全攻略技巧教程

这可以让你查看查询的执行时间和进程(在 Query statistics 选项卡上),有助于识别需要优化的查询。对于高级监控,MySQL Workbench 将是无价之宝:

MySQL Workbench 的主用户界面

它为你提供了数据库设计、开发和管理的高级功能。它还能提供性能报告和诊断,帮助您对数据库进行微调。

在 WordPress 中,常年使用的 Query Monitor 插件可让您监控数据库查询、钩子、条件、HTTP 请求等。 Query Monitor 插件

WordPress数据库优化全攻略技巧教程

它对检测缓慢查询和识别导致缓慢查询的插件或主题特别有用。但在大多数情况下,这是一个开发插件,因此可能不适合生产网站。

如何在 WordPress 中处理大型数据库

随着 WordPress 网站内容、用户和流量的增长,其数据库自然也会随之扩大。在运行网站时,您会经常遇到(或担心)大型数据库。我们在本文中给出的大多数建议都适用于大型数据库——以及减少大型数据库。不过,对于那些本身就比一般数据库大的数据库,我们还可以给出很多其他建议:

1. 归档旧数据:不要让所有数据都是实时的,可以考虑将不经常访问的旧文章或用户数据归档。
2. 使用内容交付网络(CDN):从另一台服务器卸载和提供静态资源,如图片、视频和下载,可以减少网站的负载,帮助网站加速。此外,无论用户身在何处,网站的加载速度都会更快。
3. 自定义查询:如果您是 WordPress 开发人员,请为您的主题和插件编写高效的查询。这将帮助您只获取所需的内容,并保持较高的效率。
4. 表分区和数据库分片:您甚至可以考虑使用表分区和“数据库分片”等高级技术。这就是将数据分割到多个数据库中。这通常比较复杂,通常需要专家进行管理。

说到这一点,要想让您的数据库和附属网站实现高性能,专家是必不可少的。

小结

您的 WordPress 数据库就像汽车的发动机:如果不进行调整,它就无法发挥您所需要的性能。事实上,如果缺乏对 WordPress 数据库的优化,您的搜索排名可能会从第一名掉到最后一名。您的用户也会发现您的网站变得乏善可陈,因此一个运行速度快的顶级数据库是成功的关键。有很多方法可以做到这一点,但将人工技术、插件等优化工具结合起来,会给您带来最大的收益。在许多情况下,自动化可以帮助您完成许多此类任务,而无需登录或亲自运行任何特定工具。

我们很想知道我们的 WordPress 数据库优化技巧是否对您有用。请在下面的评论区告诉我们哪个最有效!

文章网址:https://www.wpbull.com/jiqiao/7405.html