Go语言技术文章
-
MySQL 联合索引没有命中时,按最左前缀、等值与范围条件、表达式写法和 EXPLAIN 字段逐层判断,区分索引无法使用与优化器主动选择全表扫描。415 收藏 -
DISTINCT 可用于视图定义,但必须紧随 SELECT 后、禁止独立 ORDER BY;其作用于整行而非单字段,无法替代正确建模或实现按业务规则去重,且导致视图不可更新。DISTINCT 能直接用在视图定义里,但必须放对位置、避开 ORDER BY,且后续基本不能更新 创建含 DISTINCT414 收藏 -
MySQL 8.4 事件调度器适合承接数据库内的周期任务。本文用订单归档场景讲清 CREATE EVENT、执行记录、权限与停用检查,避免任务建好了却没人知道是否真的运行。414 收藏 -
Redis Hash 适合把对象拆成多个 field。本文用 HSET 和客户端示例说明如何只更新一个子键,减少大对象读写,并处理返回值、并发覆盖与过期时间边界。414 收藏 -
用 Redis Lua 脚本把库存判断、原子扣减和初始过期放在同一执行边界,说明 TTL 刷新、库存不足、NOSCRIPT 与参数边界。414 收藏 -
本文用 Redis ZRANGE 的 BYSCORE、排他分值和 LIMIT 实现有序集合游标分页,说明如何保存下一页游标、避免重复分值跳过数据,并判断末页与查询成本。414 收藏 -
MySQL 的 NOT IN 查询突然查不到数据,常见原因是列表或子查询结果含有 NULL。本文从三值逻辑解释这个现象,并用 NOT EXISTS、IS NULL 和过滤 NULL 的写法建立可检查的排除条件。413 收藏 -
讲清 Redis SET 命令的 GET 选项如何在一次原子写入中返回旧值,并覆盖键不存在、非字符串旧值、条件写入、TTL 保留及 GETSET 迁移等边界。413 收藏 -
MySQL Skip Scan 不是复合索引的默认补救方案。本文用单表覆盖索引、前缀等值条件、后续范围条件和 EXPLAIN 结果,整理判断它是否会被优化器采用的步骤。413 收藏 -
本文用一个订单报表示例说明 MySQL CTE 如何按筛选、聚合和展示关联拆分复杂查询,并解释 EXPLAIN、合并与物化之间的关系。413 收藏 -
MySQL XA 事务进入 PREPARED 后,连接断开并不代表事务已经消失。本文从 XA RECOVER、事务分支和业务提交记录入手,说明如何区分可提交、可回滚和需要人工确认的状态,并给出恢复前后的验收边界。412 收藏 -
Redis GEOSEARCH 的距离单位不是展示格式,而是过滤半径的一部分。本文用 M、KM、FT、MI 对照示例,说明如何选单位、核对坐标、验证返回距离并处理边界。412 收藏 -
MySQL 函数索引不生效时,先检查双括号、表达式是否一致、结果类型是否相同,再用 EXPLAIN 区分不匹配与优化器成本选择。412 收藏 -
Redis CLIENT NO-EVICT ON 只保护当前连接,使它在启用 maxmemory-clients 后不进入客户端淘汰候选。本文区分客户端淘汰与键淘汰,说明同连接初始化、阈值配置和输出缓冲区边界。411 收藏 -
Redis ZRANGE BYSCORE 按数值 score 筛选,适合排行榜和时间窗口;BYLEX 按 member 的二进制字节顺序筛选,并要求成员使用相同 score。本文用命令、边界符和场景表说明选择方法。411 收藏