没有不值得去解决的问题,也没有不值得去学习的技术!

分类: 数据库

  • 本文记录一次 WordPress 动态首页性能问题的完整排查与优化过程。绕过 EdgeOne、Cloudflare 和 W3 Total Cache 后,发现中文首页真实动态生成时间接近 19 秒。通过 PHP-FPM slowlog、MySQL EXPLAIN 与实际 SQL 基准测试,最终定位到 Post Views Counter 的热门文章排行榜查询:完整 wp_posts.* 参与 SUM、GROUP BY 和 ORDER BY,导致 MySQL 5.7 创建磁盘临时表。通过 MU Plugin 将查询改造成“轻量排名 + Top N 完整文章加载”的两阶段结构后,中文动态首页降至约 0.83~0.89 秒,英文首页稳定在约 0.87~0.96 秒,同时保持排行榜顺序、浏览量和 Polylang 语言过滤正确。

  • 本文记录在阿里云 ECS 的 OneinStack 环境中,将源码安装的 Redis 7.0.11 升级到 Redis 8.10.0 的完整过程。内容包括升级前环境审计、vm.overcommit_memory 与 Transparent Huge Pages 优化、手动生成 RDB、双重备份与自动回滚、RedisBloom 等附加模块编译失败分析、Redis 核心二进制单独构建、旧版 RDB 兼容检查、临时端口与 PHP Redis 读写测试,以及生产切换后的 WordPress、W3 Total Cache、内存和缓存状态验证。

  • 本文记录了在1核2G阿里云ECS服务器上解决WordPress单日126次504超时的全过程。故障根源在于18000个标签页导致并发过高,通过禁用WP-CRON并改用系统定时任务、配置Nginx限流拦截恶意爬虫、调整W3TC与Redis缓存策略以绕过数据库查询,实现了从系统机制到缓存层的全面调优。该方案在不影响SEO和数据完整性的前提下,成功压榨服务器性能并解决了高负载与超时问题。

  • 本文记录了在 Ubuntu 26.04 上利用 Docker 搭建 Go Gin 开发环境的全过程。通过编写 Dockerfile 预装 Git,构建 Go 1.26 Alpine 镜像,并编写 docker-compose.yml 接入现有的 MySQL 和 Redis 自定义网络。最终实现了在容器内运行 Gin 应用,成功验证了数据库连通性及 API 请求,实现了代码与数据库容器的分离部署。

  • 本文介绍了在 Ubuntu 系统下使用 Docker 引擎管理多版本数据库的开发环境配置过程。文章解决了 VPN 环境下的网络超时问题,通过指定公共 DNS 和配置 DaoCloud 镜像加速器实现了镜像拉取。作者演示了部署 MySQL 5.7、MySQL 8.0 与 Redis 7.2 容器的完整步骤,包括编写 Docker Compose 文件及处理 8.0 连接兼容性。最终实现了容器间的网络互通与数据持久化,为项目提供稳定且版本隔离的数据库支持。

  • 针对 WordPress 代码块中 Emoji 显示异常的问题,本文分析了数据库字符集不支持及前端图片替换机制导致其转换为 HTML 实体或 img 标签的原因。通过检查并升级核心表字符集为 utf8mb4、在主题 functions.php 中移除相关过滤器、以及手动修正旧文章内容的三个步骤,可彻底解决该问题,确保 Emoji 在前端代码块中原样展示,且适用于代码高亮插件。

  • 本文记录了在 WordPress 网站使用 Polylang 插件批量处理标签时,因 W3 Total Cache 的 Redis 对象缓存引发 OOM 错误的解决过程。通过排查发现 Redis 最大内存限制过小且淘汰策略配置不当,导致写入被拒绝。解决方案是通过修改配置文件将最大内存上限提升至 1GB,并将淘汰策略调整为 allkeys-lru,最终使批量脚本顺利完成,验证了调整内存参数和淘汰策略的有效性。

  • 在 MySQL 8.0 环境中,包含 10000 个参数的 IN 条件查询导致执行时间过长,引发接口响应超时。经排查发现,将参数数量减少至 5 个后响应恢复正常,且数据表记录总数为 2000 万条。分析认为 SQL 未正确使用索引,通过调整 SQL 语句强制使用 USE INDEX,有效解决了查询耗时过长和超时问题。

  • 本文记录了在 WSL-Ubuntu 环境下使用 Docker 搭建 Hyperf 框架时解决 Redis 连接失败问题的过程。文章排查了连接拒绝的原因,确立了基于 WSL 的最佳开发架构,通过创建 Docker 公共网络实现了 Redis、MySQL 容器与 Hyperf 项目的互通。最终通过修改 .env 配置文件,成功启动服务并实现了通过 localhost 访问。

  • 文章基于资深后端开发视角,复盘了传统MySQL手工分库分表在扩容、跨分片操作及运维方面的痛点,对比了TiDB、OceanBase等主流NewSQL分布式数据库的优劣势与适用场景,重点阐述了TiDB在兼容MySQL协议与自动分片上的价值。文中还厘清了TiDB与ElasticSearch的边界,指出两者定位互补,需根据是否需要全文检索决定是否保留检索引擎,并给出了兼顾事务处理与检索需求的架构演进路线。

👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

15+ 年 Web 后端开发经验,专注于系统维护、架构优化、性能调优及 Linux 运维。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

为创业团队、中小企业及独立开发者提供长期技术支持与远程合作服务。

👉 关于我 & 合作

.env (14) 404 (13) add (16) AI 翻译 (21) Apache (13) Array (19) A Tour of Go (35) Cache (13) CentOS (23) chrome (19) Cloudflare (28) Codex (13) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) EdgeOne (30) environment variable (19) error (24) Failed (13) file (15) filter (20) Git (27) GitHub (20) Gitlab (15) GLM-5.2 (24) Go (49) Google AdSense (22) Go 语言 (18) GraphQL (24) GraphQL API (14) Gutenberg (32) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (21) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (21) Nginx (62) normalize.css (28) OKX (15) OneinStack (20) PHP (67) php-fpm (18) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (57) postman (18) Query (17) queue (16) Rancher (24) Redis (48) response (13) RESTful (27) RESTful API (23) Shell (13) Shopify (19) SlyTranslate (20) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (35) Windows 10 (46) WireGuard (27) WordPress (123) WordPress 多语言 (13) WPCode (23) Wstunnel (14) Yii (40) Yii 2 (70) Yii 2.0 (51) 命令行 (13) 多语言翻译 (19) 技术博客 (15) 故障排查 (14) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 8 月
 12
3456789
10111213141516
17181920212223
24252627282930
31