分类: SQL
-
针对 Nginx 与 FastCGI 环境下日志表数据量达到 GB 级时,查询最后一页出现 504 Gateway Time-out 超时的问题,通过分析定位了本地环境与生产环境的配置差异。在本地增加 fastcgi_read_timeout 并调整 PHP 脚本最大执行时间后问题解决,但在生产环境中排查发现,由于请求经过 Kong 网关,超时原因出在网关层面而非后端服务,最终确认由运维人员处理网关配置。
-
文章针对在 Yii 2.0 中实现跨多表数据唯一性验证的需求,通过核心验证器 unique 结合 filter 回调函数,利用匿名函数修改查询对象,将模型关联字段、常量状态以及请求参数数组存储为全局变量后注入验证逻辑,最终实现了针对文章标题与渠道任务关联条件的复杂唯一性校验,生成的 SQL 查询符合预期。
-
本文介绍了在 Yii 2.0 生产环境中开启 Schema 缓存以优化性能的操作,包括修改配置文件、验证 Redis 缓存生成及手动清理缓存的命令。测试发现清除 Schema 缓存后并非立即刷新数据,而是在下次调用相关表结构时触发更新。文章还说明了在 Docker 容器部署和 Rancher 升级时执行数据库迁移与清理命令的流程。性能测试对比显示,开启缓存后接口并发峰值反而略有下降,因此决定暂时保留该配置不回退。
-
在禅道中保存任务时出现响应 405 并提示安全威胁阻断的问题,经排查发现任务内容中包含 UNION ALL 关键字。在删除该关键字后成功保存,文章分析认为这并非禅道本身的问题,而是应用防火墙误拦截导致的。
-
针对 Yii 2.0 中企鹅号任务发布后入库失败无法查询记录的问题,文章放弃了客户端冗余存储方案,采用新建预发布日志表并增大字段长度的设计。通过创建继承 ActionFilter 的过滤器,在动作执行后根据返回码非 10000 时插入记录,并利用 UNION ALL 语法合并查询结果,成功实现了入库成功与失败皆可查询的功能。
-
文章针对 Yii 2.0 默认不支持 MySQL 的 MEDIUMTEXT 等字段类型的问题,通过参考 SchemaBuilderTrait.php 源码,在控制台目录下新建自定义 Trait 文件并添加相应类型支持。操作过程包括复制核心文件、实现扩展方法以及在迁移文件中引用该 Trait。执行迁移后,成功创建了包含 MEDIUMTEXT 类型字段的数据库表,经验证字段类型符合预期。
-
针对 MySQL 5.6 与 5.7 版本,本文记录了利用 EXPLAIN 分析查询并添加索引的优化过程。通过对 pa_plan_task 及其关联表分别添加 idx_group_id、idx_create_user_id 等索引,观察到部分表的扫描类型从 ALL 变为 ref,性能提升明显。随后调整 SQL 语句合并重复逻辑,并为相关表添加 idx_is_deleted 索引,最终改变了执行计划中的连接顺序,减少了排序与临时表的使用,总体性能得到改善。
-
文章针对 MySQL 5.6 和 5.7 策划指挥系统的索引进行优化,通过 EXPLAIN 分析 SQL 执行计划。过程包括删除冗余索引、遵循最左前缀原则添加联合索引,以及调整 SQL 语句中的重复逻辑。最终结果表明,多个表的 type 值从 ALL 或 index_merge 优化为 ref,消除了 Using filesort 和 Using join buffer,显著提升了查询性能。
