分类: MySQL
-
本文记录一次 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 语言过滤正确。
-
本文记录了在 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 在前端代码块中原样展示,且适用于代码高亮插件。
-
在 MySQL 8.0 环境中,包含 10000 个参数的 IN 条件查询导致执行时间过长,引发接口响应超时。经排查发现,将参数数量减少至 5 个后响应恢复正常,且数据表记录总数为 2000 万条。分析认为 SQL 未正确使用索引,通过调整 SQL 语句强制使用 USE INDEX,有效解决了查询耗时过长和超时问题。
-
文章基于资深后端开发视角,复盘了传统MySQL手工分库分表在扩容、跨分片操作及运维方面的痛点,对比了TiDB、OceanBase等主流NewSQL分布式数据库的优劣势与适用场景,重点阐述了TiDB在兼容MySQL协议与自动分片上的价值。文中还厘清了TiDB与ElasticSearch的边界,指出两者定位互补,需根据是否需要全文检索决定是否保留检索引擎,并给出了兼顾事务处理与检索需求的架构演进路线。
-
网站后台因 MySQL 连接报错无法访问,经排查发现服务因数据表损坏停止启动。深入分析日志并检查磁盘资源,确认根分区空间已耗尽。通过将 Linode 实例存储配置从 80GB 升级至 160GB,释放了磁盘空间。重启服务后再次访问,网站后台恢复正常登录,不再报错。
-
文章针对 Yii2 运行时出现的 Malformed UTF-8 characters 异常进行分析,定位原因在于响应数据包含 MySQL 的 Point 类型字段。虽尝试使用 ST_X 和 ST_Y 空间函数及 addSelect() 方法提取经纬度来规避直接序列化错误,但考虑到模型层自动处理的复杂性,最终放弃使用 Point 类型字段,将数据库结构调整为使用两个独立的 Decimal 字段分别存储经纬度。
-
本文针对在 phpMyAdmin 登录时提示 mysqli::real_connect 认证方法未知的问题进行分析。由于 MySQL 8.0 默认使用 caching_sha2_password,而 PHP 7.3.9 环境不兼容,解决方法包括在 MySQL 配置文件中添加默认认证插件设置并重启服务,以及手动更新已有 root 用户的认证插件为 mysql_native_password。完成操作后,再次登录 phpMyAdmin 即可成功。
