随着您的 WordPress 项目的增长,您可能会开始注意到性能问题,这通常是由臃肿的数据库引起的。虽然有许多插件可帮助清理数据库,但有时了解如何自己清理数据库还是很有好处的。本指南将引导您手动清理和优化 WordPress 数据库。
在对数据库进行任何更改之前,请务必创建备份。以下步骤涉及运行破坏性 SQL 查询,这将永久删除数据,并且您不想丢失任何重要的内容。备份将确保您在出现问题时可以恢复。
如果您不习惯手动运行 SQL 查询,请不要担心 — 有一些优秀的插件可以为您自动执行该过程。以下是一些强烈推荐的选项:
这些插件可以有效地处理各种数据库清理任务。即使您采用插件路线,为了安全起见,您仍然应该在运行任何数据库清理操作之前创建备份。
目标是删除随着时间的推移在数据库中积累的不必要的数据 - 您不再需要但可能会降低网站速度的数据。这是我们的目标:
通过删除这些不必要的项目,您可以显着提高 WordPress 数据库性能。
请记住在继续之前备份您的数据库。此外,我们会将所有 SQL 语句包装在一个事务中,以便您在事情未按计划进行时回滚更改。
除了清理数据库之外,您还可以通过优化常用表来提高性能。这可以减少碎片并保持数据库平稳运行。
如果您有信心并准备好,请将以下 SQL 查询复制并粘贴到 WordPress 服务器的 SQL 控制台中。请随意通过注释掉或删除它们来跳过任何查询。
如果您的 WordPress 数据库使用自定义表前缀,请将查询中的默认 wp_ 前缀替换为您自己的前缀。
此查询优化了一些最常用的 WordPress 表:
-- Optimize commonly used WordPress tables to reduce fragmentation OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_usermeta, wp_comments;
这是清理部分,包含在事务中,以便您可以在需要时将其回滚:
-- Start the transaction START TRANSACTION; -- Remove transients (temporary data) DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%'; -- Remove post revisions DELETE FROM wp_posts WHERE post_type = 'revision'; -- Remove auto-drafts DELETE FROM wp_posts WHERE post_status = 'auto-draft'; -- Remove orphaned post meta (meta data for non-existent posts) DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL; -- Remove orphaned comment meta DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments); -- Remove spam and trashed comments DELETE FROM wp_comments WHERE comment_approved IN('spam', 'trash'); -- Remove orphaned term relationships (tags, categories linked to non-existent posts) DELETE tr FROM wp_term_relationships tr LEFT JOIN wp_posts wp ON wp.ID = tr.object_id WHERE wp.ID IS NULL; -- Remove expired user sessions DELETE FROM wp_usermeta WHERE meta_key = '_wp_session_expires' AND meta_value < UNIX_TIMESTAMP(); -- Remove old, non-autoloading plugin options DELETE FROM wp_options WHERE autoload = 'no'; -- Identify unattached media files (this won't delete the files, just shows them) SELECT * FROM wp_posts WHERE post_type = 'attachment' AND post_parent = 0; -- Commit the transaction (to apply changes) COMMIT;
如果您遇到任何问题或出现问题,您可以取消交易并恢复更改:
-- Rollback the transaction if you don't want to commit the changes ROLLBACK;
定期清理和优化 WordPress 数据库对于保持良好的性能至关重要,尤其是随着您的网站的增长。无论您喜欢手动执行还是使用插件,重要的是确保您的数据库不会成为瓶颈。
按照本指南,您可以安全高效地清理和优化数据库,保持网站平稳运行。请记住:始终始终在进行更改之前备份!
以上是优化和清理 WordPress 数据库:DIY 指南的详细内容。更多信息请关注PHP中文网其他相关文章!