前置必读:优化前必做备份(防数据丢失)
所有数据库操作前必须完整备份数据库,两种备份方式:
- 插件备份:UpdraftPlus / WP-Optimize 一键导出 SQL 备份
- phpMyAdmin 备份:进入数据库 → 顶部【导出】→ 快速导出 → 下载.sql文件
一、一键可视化清理(新手首选:WP-Optimize 图文步骤)
功能:清理冗余垃圾、优化数据表碎片,降低数据库体积 50%~70%
步骤 1:安装激活插件
后台 → 插件 → 添加新插件 → 搜索WP-Optimize → 安装并启用
步骤 2:进入数据库优化面板
左侧菜单 WP-Optimize → Database

步骤 3:勾选清理项目(推荐全选)
- 优化数据库表(OPTIMIZE TABLE,清理碎片)
- 清理所有文章修订版本
- 清理自动草稿
- 清空垃圾评论、回收站评论
- 清理过期缓存临时数据(transients)
- 清理未使用媒体附件元数据
步骤 4:执行优化
点击 Run all selected optimizations 等待执行完成
步骤 5:设置自动定时清理(长期维护)
切换到【Settings】标签,设置每周自动清理,无需手动操作
二、深度手动清理(phpMyAdmin 图文 + SQL 命令)
适合大站点、WooCommerce 商城,插件清理不干净时使用
步骤 1:登录 phpMyAdmin
主机面板(cPanel / 宝塔)找到 phpMyAdmin,左侧选中你的 WP 数据库

步骤 2:切换 SQL 执行窗口
顶部导航栏点击 SQL,粘贴对应命令执行(前缀wp_改成你实际表前缀)
全套安全清理 SQL(逐条执行)
| sql<br>— 1. 删除所有文章修订记录<br>DELETE FROM wp_posts WHERE post_type = ‘revision’;<br>– 2. 删除自动草稿<br>DELETE FROM wp_posts WHERE post_status = ‘auto-draft’;<br>– 3. 清空垃圾评论<br>DELETE FROM wp_comments WHERE comment_approved = ‘spam’;<br>– 4. 删除过期临时缓存transients<br>DELETE FROM wp_options WHERE option_name LIKE ‘_transient_%’;<br>DELETE FROM wp_options WHERE option_name LIKE ‘_transient_timeout_%’;<br>– 5. 优化所有数据表(清理碎片,InnoDB/MyISAM通用)<br>OPTIMIZE TABLE wp_posts,wp_postmeta,wp_comments,wp_commentmeta,wp_options,wp_terms,wp_termmeta,wp_term_relationships; |
步骤 3:清理臃肿 wp_options(网站每次加载都会全查此表)
1)查询占用空间超大的自动加载配置
| sql<br>SELECT option_name, LENGTH(option_value) AS size FROM wp_options WHERE autoload=’yes’ ORDER BY size DESC LIMIT 20; |
执行后会列出占用空间的废弃插件配置,不要直接删除,确认插件已卸载再删除对应 option_name
2)关闭无用项自动加载(提速核心)
找到不需要全局加载的配置,执行修改:
| sql<br>UPDATE wp_options SET autoload=’no’ WHERE option_name = ‘废弃插件配置名’; |
三、添加数据库索引(大幅减少慢查询,图文操作)
WordPress 默认索引不足,商城 / 多自定义字段站点提升最明显
方式 1:phpMyAdmin 可视化添加索引
- 选中数据表 → 顶部【Structure】结构标签
- 页面底部 Create an index on 1 columns,输入字段名,点击 Go 创建
方式 2:一键执行索引 SQL(复制到 phpMyAdmin 执行)
| sql<br>— 加速wp_options全局配置查询(每页必查)<br>CREATE INDEX idx_options_autoload ON wp_options (autoload, option_name);<br>– 加速自定义字段/ACF/Woo商品元数据查询<br>CREATE INDEX idx_postmeta_meta_value ON wp_postmeta (meta_key(191), meta_value(100));<br>– WooCommerce订单专用索引(商城必加)<br>ALTER TABLE wp_wc_orders ADD INDEX status_date_created (status, date_created_gmt); |
懒人插件方案
安装 Index WP MySQL For Speed,一键自动生成全套优化索引,无需手写 SQL
四、wp-config.php 源头防臃肿配置(从根源减少垃圾)
编辑网站根目录wp-config.php,添加以下代码,限制自动产生冗余数据
| php<br>// 限制文章仅保留3个修订版本(默认无限制,越积越多)<br>define(‘WP_POST_REVISIONS’, 3);<br>// 自动删除7天前自动草稿<br>define(‘AUTOSAVE_INTERVAL’, 600);<br>// 关闭WP自带数据库查询缓存(改用Redis持久缓存)<br>define(‘WP_CACHE’, true);<br>// 数据库字符集优化,避免乱码+存储占用更小<br>define(‘DB_CHARSET’, ‘utf8mb4’);<br>define(‘DB_COLLATE’, ‘utf8mb4_unicode_ci’); |
五、Redis 持久对象缓存(数据库优化收益最高方案)
原理
把数据库查询结果存入内存,90% 页面请求不再访问 MySQL,TTFB 大幅降低
完整图文部署流程
-
- 服务器安装 Redis(宝塔面板直接一键安装 Redis,Ubuntu 命令参考)
| bash<br>sudo apt update && sudo apt install redis-server php-redis<br>sudo systemctl restart php-fpm |
-
- WP 后台安装插件:Redis Object Cache 并激活
- 编辑wp-config.php末尾添加连接配置
| php<br>define(‘WP_REDIS_HOST’, ‘127.0.0.1’);<br>define(‘WP_REDIS_PORT’, 6379);<br>define(‘WP_REDIS_DATABASE’, 0);<br>define(‘WP_REDIS_PREFIX’, ‘wp_’); |
- 后台 → 设置 → Redis Object Cache → 点击【Enable Cache】启用
- 查看缓存命中率,高于 80% 代表优化生效
六、定位慢查询:Query Monitor 插件排查卡顿根源
很多数据库慢是劣质插件 / 自定义代码导致,用插件可视化追踪
- 安装Query Monitor插件激活
- 页面底部出现性能状态栏,点击【Queries】查看所有数据库查询

排查重点
- 耗时 > 0.5s 的 SQL(慢查询)
- Duplicate Queries 重复执行的相同查询
- 查看 Caller 列,定位是哪个插件 / 主题文件产生慢查询<br>优化方案:替换劣质插件、优化 WP_Query 参数、添加索引
七、WP-CLI 命令行批量优化(服务器 SSH 运维)
适合宝塔 / 云服务器 SSH 一键维护,无需进后台
| bash<br># 进入网站根目录<br>cd /www/wwwroot/你的网站目录<br># 清理所有临时缓存<br>wp transient delete –all<br># 优化全部数据表碎片<br>wp db optimize<br># 修复损坏数据表<br>wp db repair<br># 导出数据库备份<br>wp db export backup.sql |
八、WooCommerce 商城专属数据库优化
- 开启 HPOS 高性能订单存储:WooCommerce → 设置 → 高级 → 功能 → 启用 HPOS
- 定期清理废弃购物会话:WP-Optimize 勾选清理 cart sessions
- 给订单表添加前文status_date_created复合索引
- Redis 缓存开启购物车会话存储,减轻数据库压力
九、长期数据库维护计划表
| 周期 | 维护操作 |
| 每周自动 | WP-Optimize 定时清理垃圾、临时缓存 |
| 每月手动 | phpMyAdmin 执行 OPTIMIZE TABLE 碎片优化;Query Monitor 排查慢查询 |
| 每季度 | 审计 wp_options 自动加载项、清理废弃插件数据表;完整数据库备份 |
| 每年 | 卸载长期不用插件、清理孤立元数据、重建索引 |
十、常见优化效果总结
- 数据库体积缩减 50%~70%,磁盘 IO 降低
- 页面 TTFB 缩短 30%~60%,后台管理界面加载大幅提速
- MySQL 服务器 CPU 负载下降 40%+,高并发不卡顿
- Redis 缓存后,数据库查询请求减少 80% 以上