Go语言技术文章
-
MySQL 时间范围查询能否命中分区,关键不在分区数量,而在分区键、边界定义和 WHERE 谓词是否保持可裁剪形式。本文用 RANGE COLUMNS、半开区间与 EXPLAIN PARTITIONS 说明具体做法。301 收藏 -
Redis Cluster 中 MULTI 不能直接跨槽位执行。本文解释 hash slot、哈希标签和 MOVED 边界,并给出键设计、事务拆分与上线检查清单。300 收藏 -
MySQL 生成列索引不生效,通常不是索引语法错,而是查询表达式没有与生成列定义完全匹配。本文按表达式、结果类型、JSON_UNQUOTE 和 EXPLAIN 四个方向排查。300 收藏 -
MySQL invisible index 可以在不删除索引的情况下观察优化器计划变化。本文用 IS_VISIBLE、EXPLAIN、ALTER INDEX 和 SET_VAR 说明如何安全评估索引下线影响。300 收藏 -
MySQL 8.0 及以上可以先把二级索引设为不可见,让优化器停止使用它却继续维护索引。本文用订单查询演示 SHOW INDEX、ALTER INDEX INVISIBLE、EXPLAIN 和回滚检查,说明什么证据足够支持 DROP INDEX。299 收藏 -
MySQL 9.4 将 MD5() 和 SHA1() 标记为弃用,但旧 SQL 的迁移不能一概改成 SHA2()。本文按校验、业务指纹和口令存储区分用途,给出扫描、替换、长度核对与回归检查清单。298 收藏 -
用 MySQL 生成列保存订单计算结果并建立索引,说明 VIRTUAL 与 STORED 的取舍、表达式匹配规则、JSON_UNQUOTE 用法和 EXPLAIN 检查方法。297 收藏 -
MySQL JSON_TABLE 可以把 JSON 文档投影成关系表。本文用订单、商品和选项的嵌套数组说明根路径、NESTED PATH、FOR ORDINALITY,以及缺失字段和类型转换的处理边界。296 收藏 -
解释 MySQL InnoDB 事务中普通 SELECT 与 SELECT ... FOR UPDATE 的差异,用库存扣减示例说明丢更新风险、锁定读边界和可复核的验证方法。295 收藏 -
批量更新从几百行扩大到几十万行后,慢点往往不在 UPDATE 语句本身,而在索引维护、锁持有时间和事务日志压力。本文用订单归档场景拆开原因,并给出按主键分批提交的验收边界。291 收藏 -
Redis 设置 EXPIRE 后,键不会按秒表准点从内存消失。本文用 TTL、INFO memory 和 MEMORY USAGE 区分惰性删除、定期抽样与大值回收,给出可复查的排查顺序和参数边界。291 收藏 -
用 MySQL 8.0 隐形索引在不删除索引的前提下做查询计划对照,核对 EXPLAIN、实际耗时和恢复动作,降低索引下线风险。291 收藏 -
MySQL 合并多个查询结果时,UNION 默认删除重复整行,UNION ALL 保留所有行。本文从业务语义、列位置、整行去重以及 ORDER BY、LIMIT 的作用范围说明如何选择,避免误删明细或为不必要的去重增加开销。290 收藏 -
Redis 用 SINTER 对多个 Set 求交集,适合按标签筛选同时满足多个条件的用户。本文从反向索引、SINTER 与 SINTERSTORE 的选择、结果失效、复杂度和 Redis Cluster 同槽约束说明完整做法。288 收藏 -
Redis 大键排查可以先用 SCAN 分批枚举命名空间,再用 MEMORY USAGE 比较单键占用;对候选键结合 TYPE、元素数量和 SAMPLES 0 复核,并区分键过大与实例碎片率。288 收藏