Go语言技术文章
-
MySQL 9.7 的 VECTOR 列能保存向量,但原生向量索引和相似度检索仍在官方架构讨论中。本文拆开 InnoDB 二级索引、隐藏子表、事务一致性和当前落地边界,给出应用侧的稳妥接法。432 收藏 -
判断 MySQL 列选择性是否真的变差,不能只看直方图;应结合实际过滤比例、EXPLAIN ANALYZE 的估算与实际行数,以及索引 CARDINALITY 和统计更新时间综合确认。432 收藏 -
通过显式字段映射、用户变量和 IGNORE 处理 MySQL LOAD DATA 的脏行,并立即保存 Records、Skipped、Warnings 与 SHOW WARNINGS 明细。432 收藏 -
MySQL utf8mb4 排序规则不是只影响 ORDER BY,也会改变字符串的相等判断,从而让唯一索引出现新增冲突或放宽边界。本文用 INFORMATION_SCHEMA、COLLATE 对比和迁移前分组检查,说明如何安全判断与处理。431 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 执行计划 · InnoDB · 索引优化 · explain 函数索引 MySQL 8.4 Functional Key Parts 表达式索引
MySQL 8.4 函数索引可以直接为表达式结果建立索引,但表达式写法、数据类型、写入成本和查询计划都要一起验收。本文用订单日期与 JSON 状态筛选两个场景,说明什么时候该建函数索引、什么时候改写查询更稳。429 收藏 -
MySQL 事务回滚后出现自增主键空洞并不代表数据错乱。本文用 INSERT、ROLLBACK 和并发场景说明 AUTO_INCREMENT 的分配边界,并给出业务编号与主键分工、复核和验收方法。429 收藏 -
Redis Pipeline 可以通过批量发送命令减少网络往返,但服务端会暂存回复,客户端也会积累待执行命令。本文用 redis-py 分批写入示例,说明如何在延迟收益与客户端、服务端内存边界之间选择批量大小。426 收藏 -
MySQL 表出现重复审计记录时,不要先删触发器。本文从 SHOW TRIGGERS、SHOW CREATE TRIGGER 和最小写入复现入手,区分多触发器、执行时机、递归写入与连接重试造成的重复。425 收藏 -
讲清 MySQL EXISTS、IN、NOT IN 遇到 NULL 时的三值逻辑差异,并给出 IS NOT NULL 与 NOT EXISTS 的安全写法。425 收藏 -
MySQL 8.4 可以在关闭时保存 Buffer Pool 中最近使用页的表空间与页编号,并在下次启动后由后台线程重新加载。本文给出配置、手动触发、进度检查和常见失效排查方法。425 收藏 -
在SQL标准中,递归CTE是唯一可在不同数据库间移植的递归方案。它必须包含WITH RECURSIVE关键字、锚点查询(比如WHERE parent_id IS NULL)以及递归成员(通过UNION ALL连接并引用自身CTE),这三者缺一不可。而普通子查询不能自引用,只能进行单层查询。为什么不能424 收藏 -
从服务端默认值、数据库和表级覆盖,到连接握手后的四个 session 变量,给出一套可回滚的 MySQL 8.4 utf8mb4 迁移与验收流程,避免中文写入正常却排序、比较和结果返回异常。423 收藏 -
用 ROW_NUMBER 为组内记录编号,演示 MySQL 分组取最新整行的写法,并说明 MAX 加回表、并列时间和索引复查要点。423 收藏 -
Redis MULTI 中要先区分队列阶段错误、WATCH 冲突和执行阶段错误。现代 Redis 的语法或参数错误会让 EXEC 返回 EXECABORT;类型错误可能进入结果数组,其他命令仍会执行。本文给出判断和有限重试边界。423 收藏 -
Redis Lua 脚本如何把多个 key 的读取、条件校验和修改放进一次原子执行,并正确使用 KEYS、ARGV、hash tag 与 EVALSHA。423 收藏