Go语言技术文章
-
MySQL CHECK 失败后,先从错误中取得约束名,再用 SHOW CREATE TABLE 和 INFORMATION_SCHEMA.CHECK_CONSTRAINTS 反查表达式,最后把候选值拆成多个布尔子条件逐列计算。本文还说明 TRUE、FALSE、UNKNOWN、NULL 与隐式类型转换的差异。386 收藏 -
MySQL GTID 自动定位可让副本按已执行事务集向新源请求缺失事务。本文给出候选源核对、SOURCE_AUTO_POSITION 切换命令、状态验收和已清理 GTID 的处理边界。110 收藏 -
Redis FCALL 只按函数名调用,版本化不能依赖库名限定。本文比较同名覆盖、版本函数并存和单库路由三种方案,并给出可回滚的发布示例与检查清单。149 收藏 -
Redis 客户端缓存要避免脏读,重点是正确启用 CLIENT TRACKING 并处理 INVALIDATE 消息。本文比较默认跟踪、OPTIN、OPTOUT、BCAST 与 NOLOOP,说明连接池、跟踪表容量和数据库编号带来的边界。115 收藏 -
MySQL 生成列没有单独的刷新按钮:依赖列变化时,存储生成列和它的索引在行写入过程中维护,虚拟生成列则在读取时计算。本文用最小 SQL 区分两种时机,并排查事务可见性与执行计划未用索引的常见误判。201 收藏 -
Redis Cluster 中只有同槽 key 才能稳定执行多键命令。本文用哈希标签统一业务实体的槽位,配合 CLUSTER KEYSLOT 验证命名,并说明空标签、热点和迁移边界。463 收藏 -
MySQL EXPLAIN ANALYZE 中的 loops 表示迭代器实际执行次数。本文结合 rows、actual time 和嵌套循环 JOIN,说明如何读懂它并定位估算偏差。190 收藏 -
Redis Vector Set 使用 VSIM 的 EPSILON 按相似度门槛过滤结果。本文说明 EPSILON 是距离上限,给出相似度阈值换算公式,并区分 COUNT、WITHSCORES、FILTER、EF 与 TRUTH。433 收藏 -
MySQL 的 JSON 标量提取结果未必天然适合作为函数索引键。本文说明 JSON_UNQUOTE 返回 LONGTEXT 时为什么需要 CAST,并给出字符串、数值、金额类型的索引与查询匹配写法。204 收藏 -
Redis 7.4 起可用 HEXPIRE 或 HPEXPIRE 给 Hash 中的指定字段设置独立过期时间。本文给出完整命令流程、HTTL/HPTTL 检查方法、条件选项、覆盖字段清除 TTL 的边界,以及旧版本替代方案。228 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 事务 · InnoDB · 锁定读 MySQL NOWAIT FOR UPDATE NOWAIT FOR SHARE NOWAIT InnoDB行锁 ERROR 3572
MySQL 锁定读默认会等待冲突行锁,追加 NOWAIT 后可立即返回 3572 错误。本文用双连接示例说明 FOR UPDATE NOWAIT 的写法、事务回滚、错误处理,以及它与默认等待和 SKIP LOCKED 的边界。253 收藏 -
Redis Streams 幂等生产应优先按版本选择 XADD 的 IDMP/IDMPAUTO,旧版本用 SET NX 配合业务幂等号,并区分生产去重、消费确认与业务落库幂等。295 收藏 -
用一组混合 JSON 数据拆开 JSON_TABLE 的缺失路径、类型转换、默认值与报错边界,给出可直接改写的 SQL 配置方法。251 收藏 -
Redis XDELEX 的 KEEPREF 会删除 Stream entry 但保留消费组 PEL 引用,DELREF 会连引用一起清理。本文用命令、场景表和 XPENDING 复核说明两者差异。198 收藏 -
MySQL 直方图默认采用手动更新模式。批量导入删除、数据倾斜迁移、执行计划估算明显偏离或迁移恢复后应优先评估更新;MySQL 8.4 可启用 AUTO UPDATE,但仍需理解触发边界。306 收藏