Go语言技术文章
-
用 ROW_NUMBER 为组内记录编号,演示 MySQL 分组取最新整行的写法,并说明 MAX 加回表、并列时间和索引复查要点。423 收藏 -
Redis MULTI 中要先区分队列阶段错误、WATCH 冲突和执行阶段错误。现代 Redis 的语法或参数错误会让 EXEC 返回 EXECABORT;类型错误可能进入结果数组,其他命令仍会执行。本文给出判断和有限重试边界。423 收藏 -
Redis Lua 脚本如何把多个 key 的读取、条件校验和修改放进一次原子执行,并正确使用 KEYS、ARGV、hash tag 与 EVALSHA。423 收藏 -
Redis 大 Key 空间不适合直接使用 KEYS *。本文用 SCAN 游标、MATCH、COUNT 和幂等批处理设计一套可控的遍历流程,并说明重复返回、空批次与动态 keyspace 的边界。422 收藏 -
MySQL 不可见索引适合在删除二级索引前做可回退验证:先记录查询计划和工作负载基线,再切换 INVISIBLE,通过 EXPLAIN、Performance Schema 与慢查询日志对比影响,最后按业务阈值恢复可见或进入删除评审。422 收藏 -
MySQL NDB 的磁盘表并不是把所有列都移出内存:索引和索引列仍需保留在内存,非索引列才适合放入 Disk Data。本文用最小 DDL 说明表级与列级 STORAGE 的划分,以及容量估算时容易忽略的边界。422 收藏 -
InnoDB 默认使用 REPEATABLE READ,范围更新可能拿到间隙锁。本文用订单号范围写入场景对比 READ COMMITTED 的锁行为,说明它能减少什么等待、不能替代什么并发保护,以及上线前如何用 data_locks 和事务回归确认结果。421 收藏 -
Redis BF.RESERVE 的容量不是当前条目数,error_rate 也不是百分数整数。本文按官方参数说明,讲清误判率小数写法、capacity 估算、EXPANSION 扩容和 NONSCALING 固定边界的取舍。421 收藏 -
Redis ZRANGESTORE 可以把 Sorted Set 的排名或分值窗口直接保存到新键,适合把排行榜切片、活动候选集和分页结果短暂落盘。本文用 redis-cli 核对 BYSCORE、REV、LIMIT、返回值与 TTL 边界,说明它和 ZRANGE、ZRANGESTORE 的使用取舍。420 收藏 -
MySQL 的 wait_timeout 控制非交互连接的空闲回收,但它不能替代连接池的生命周期管理。本文用连接池、会话变量和断线重连三个边界,给出可检查、可回滚的设置方法。420 收藏 -
Redis 内存达到 maxmemory 后,淘汰策略决定哪些键先离开。本文从缓存实例的内存告警现场出发,解释 allkeys-lru、volatile-lru、allkeys-lfu 和 noeviction 的适用边界,并给出命中率、淘汰计数与回滚核对方法。420 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 执行计划 · 查询优化 · 统计信息 · explain MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
当 WHERE 条件落在数据分布很不均匀的列上,MySQL 估算行数可能偏离实际。本文用 orders.status 这个可复现实例,说明什么时候建立直方图、如何选择桶数量,以及怎样用 COLUMN_STATISTICS 和 EXPLAIN 验收收益。420 收藏 -
MySQL 分区表查询仍扫描全部分区时,可从 EXPLAIN 的 partitions 列、条件表达式、分区键类型与分区方式逐层定位,并用日期范围示例完成修复。420 收藏 -
Redis SMOVE 返回 0 时,通常表示源集合中找不到指定成员,Redis 没有执行移动;如果源键类型不正确,则应通过 error 分支处理。本文用 redis-cli 和 Go 客户端拆开这几个边界。420 收藏 -
MySQL LOAD DATA 导入带表头 CSV 时,使用 IGNORE 1 LINES 跳过首行;同时配合 FIELDS、LINES、列清单和 LOCAL 选项,让逗号、双引号、换行、文件位置与权限保持一致。420 收藏