Go语言技术文章
-
从树形执行计划的 Materialize、临时子查询表和自动去重索引节点,判断 MySQL 是否真正采用了子查询物化。121 收藏 -
Redis 删除大键时,DEL 会同步承担复合值的释放成本,UNLINK 则先摘除键并把内存回收放到后台线程。本文按负载、键大小和监控方式给出选择清单。120 收藏 -
Redis 7.0 引入的 SPUBLISH 和 SSUBSCRIBE 会把消息限制在频道对应的集群分片内,适合降低普通 Pub/Sub 的跨节点扩散。本文从频道哈希、订阅连接和返回值入手,给出一组可复查的消息验收方法。119 收藏 -
MySQL 报 Too many connections 时,不要先盲目调大 max_connections。本文用 Threads_connected、Threads_running、SHOW PROCESSLIST、Connections 和 Threads_created 建立一条可复现的定位顺序,区分连接泄漏、并发峰值与线程创建开销。119 收藏 -
Redis RDB 与 AOF 的选择应围绕数据资产、允许丢失窗口和恢复耗时展开。本文比较快照、同步策略与重写边界,说明隔离历史备份为何不可替代,并给出只读检查和恢复演练思路。119 收藏 -
MySQL 函数索引不生效,先对照索引表达式与 WHERE 谓词,再检查复合索引列顺序、覆盖列、回表和 EXPLAIN 计划。118 收藏 -
MySQL invisible index 试验结束后,用 ALTER TABLE ... ALTER INDEX ... VISIBLE 恢复可见,再通过 IS_VISIBLE、SHOW INDEX 和 EXPLAIN 确认对象状态与执行计划。118 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 数据库 · SQL · MySQL VALUES() 弃用 ON DUPLICATE KEY UPDATE MySQL 行别名 INSERT AS new MySQL upsert INSERT SELECT
MySQL 已将 ON DUPLICATE KEY UPDATE 中用 VALUES() 读取新行字段的写法标记为弃用。本文从库存快照写入场景出发,给出行别名 AS new 的最小改写、INSERT ... SELECT 的不同处理方式,以及上线前应核对的兼容边界。117 收藏 -
从列定义、参数绑定和 EXPLAIN 计划三处排查 MySQL 隐式类型转换,避免字符串列与数字比较导致索引无法高效查找。116 收藏 -
Redis 更新值时,SET、SET KEEPTTL、HSET、PERSIST 和 EXPIRE 对已有 TTL 的影响不同。本文用命令对照、事务示例和回归清单区分保留、重置与删除过期时间的边界。116 收藏 -
Redis LMPOP 可以从多个 List 中选择一个非空队列并批量取出元素,但它不是轮询器。本文核对 LEFT、RIGHT、COUNT、空结果和多键顺序,给出多队列消费的安全写法与上线检查点。115 收藏 -
Redis 客户端缓存要避免脏读,重点是正确启用 CLIENT TRACKING 并处理 INVALIDATE 消息。本文比较默认跟踪、OPTIN、OPTOUT、BCAST 与 NOLOOP,说明连接池、跟踪表容量和数据库编号带来的边界。115 收藏 -
用 Redis Lua 脚本把库存校验与扣减放进一次 EVAL,讲清 KEYS、ARGV、返回值和集群键名的使用边界。114 收藏 -
用 MySQL 8.4 的 authentication_policy 规划单因素与多因素账号,说明 caching_sha2_password、旧客户端兼容窗口和上线前登录验收方法。113 收藏 -
Redis 延迟升高不一定来自慢命令。本文搭建一个最小采集器,联合 LATENCY 事件、SLOWLOG、持久化状态和宿主机 intrinsic latency,给出区分命令阻塞、后台事件、系统调度抖动与网络耗时的实用判因方法。113 收藏