Go语言技术文章
-
应用用一条 INSERT ... ON DUPLICATE KEY UPDATE 保存业务唯一键时,新增行和命中旧行都需要返回同一个主键。本文用 account_code 唯一键演示 LAST_INSERT_ID(id) 的写法、连接级返回边界、并发验收与不适合使用的场景。266 收藏 -
Redis GETRANGE 按字节下标截取字符串或二进制值,负数下标从末尾计算,越界不会报错而是按可用范围返回。本文用 session:raw-token 示例核对起止位置、空结果和中文字节边界。266 收藏 -
MySQL 的 CREATE TABLE ... SELECT 会默认忽略源表的 INVISIBLE 列;显式选择后列会进入新表但默认变为可见。本文用 CTAS 示例说明如何选择隐藏列、保留隐藏属性,并检查最终结构。266 收藏 -
用一个地点编码小项目说明 Redis GEOADD 与 GEOHASH 的关系,演示如何按成员读取 geohash 字符串、处理批量返回顺序和缺失成员,并解释共同前缀可以做空间分桶但不能直接代替距离排序。266 收藏 -
MySQL 在线 DDL 仍可能在开始和结束阶段等待元数据锁。本文区分 lock_wait_timeout 与 InnoDB 行锁超时,说明 ALGORITHM、LOCK=NONE、会话级等待上限和 metadata_locks 排查方法。266 收藏 -
Redis Sorted Set 按字典序分页的关键是让成员使用同一 score,再用 ZRANGE BYLEX 配合 LIMIT 和排他游标读取下一页。本文说明边界符、兼容命令、排序规则与并发写入限制。265 收藏 -
数据库 · MySQL | 2星期前 | MySQL · 连接池 · 故障排查 · MySQL连接池 CURRENT_ROLE MySQL默认角色 SET DEFAULT ROLE SET ROLE DEFAULT
MySQL 的 SET DEFAULT ROLE 只定义登录或执行 SET ROLE DEFAULT 时应激活的角色,不会追溯修改已打开连接。本文给出当前会话修复、账户核对、连接池刷新和登录变量检查方法。265 收藏 -
MySQL 8.4 的普通 JSON_ARRAYAGG 不保证元素顺序,也没有内置 LIMIT。本文用 ROW_NUMBER、窗口 ORDER BY 和完整窗口帧生成每组固定数量、顺序稳定的 JSON 数组,并说明常见误区。265 收藏 -
MySQL CHECK 约束遇到 NULL 时可能返回 UNKNOWN,而 UNKNOWN 与 TRUE 一样不会触发 CHECK 失败。本文用字段约束对照说明三值逻辑,并给出 NOT NULL 与 CHECK 的显式非空写法。265 收藏 -
MySQL 窗口函数取每组最新记录时,不能只按时间排序;应使用 PARTITION BY 划分分组,在窗口 ORDER BY 中用时间和唯一键组成稳定排序,再根据是否允许并列选择 ROW_NUMBER、RANK 或 DENSE_RANK。265 收藏 -
MySQL 给大表加索引时,ALGORITHM 和 LOCK 决定了变更方式与并发影响。本文用 ALTER TABLE 说明如何预判支持范围、处理元数据锁,并在上线前做可回退的核对。264 收藏 -
MySQL 联合索引不是把多个单列索引简单拼在一起。以 (tenant_id,status,created_at) 为例,查询跳过第一列时通常失去按该联合键直接定位的能力,但最终是否使用索引仍要看谓词、选择性、统计信息和优化器成本。本文用 EXPLAIN 给出判断方法。264 收藏 -
Redis XADD 可在追加时通过 MAXLEN 裁剪旧消息。本文用独立实验键说明精确与近似长度限制、Stream ID 顺序、LIMIT 和消费组保留边界。264 收藏 -
MySQL ST_GeometryN 用于读取 GeometryCollection 中按 1 开始编号的指定几何对象。本文从集合长度、成员提取、WKT 展示和 NULL/非法输入边界入手,给出可直接改写到查询中的 SQL。264 收藏 -
MySQL invisible index 可以在不立即删除索引的前提下模拟它离开优化器候选集的影响。本文用 SHOW INDEX、EXPLAIN 和 use_invisible_indexes 对比查询计划,并说明如何安全回滚。263 收藏