Go语言技术文章
-
执行 OPTIMIZE TABLE 后,不能只看命令返回 OK 就判断磁盘空间已回收。本文按存储引擎、表空间归属、执行回执和前后快照,说明如何区分 .ibd 文件缩小、共享表空间内部复用与仅更新统计信息。408 收藏 -
MySQL START TRANSACTION READ ONLY 限制的是当前事务对永久表的写入。本文用 SQL 和连接池代码说明普通查询、写入、锁定读、临时表以及提交回滚的边界。176 收藏 -
MySQL 分区表出现读取异常或损坏标记时,应先确认存储引擎和分区范围,再用 CHECK TABLE 或 CHECK PARTITION 读取完整结果,最后结合备份和恢复方案处理。本文说明检查选项、InnoDB 风险与结果边界。434 收藏 -
从同一物理连接的会话变量出发,分清 MySQL 普通字面量、列排序规则和 COLLATE 优先级,通过对照 SQL 定位大小写比较及混用排序规则异常,并选择正确修复边界。149 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 数据库 · DDL · 迁移 · InnoDB · mysql innodb ALTER TABLE INSTANT ADD COLUMN 在线DDL 表结构变更
MySQL 8.4 中 ADD COLUMN 默认优先使用 INSTANT,但表属性、组合变更、行大小和生成列仍会改变支持边界。本文给出显式判断、错误分流和上线前检查方法。149 收藏 -
MySQL JSON_TABLE 在同一 COLUMNS 中使用多个 NESTED PATH 时,会让嵌套路径依次产出记录,并为另一组路径列补 NULL。本文用可复现 SQL 解释行来源、过滤方式与 FOR ORDINALITY 的范围。189 收藏 -
MySQL 递归 CTE 需要同时设置业务终止条件和服务器保护线。本文用 depth、cte_max_recursion_depth、递归成员内 LIMIT 与 MAX_EXECUTION_TIME 区分层数、行数和时间边界。360 收藏 -
EXPLAIN ANALYZE 能定位排序节点并展示实际耗时,但不会直接标记是否落盘。本文结合同一会话的 Created_tmp_disk_tables、Sort_merge_passes 等状态计数,说明如何判断磁盘临时表和排序归并线索。264 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 事务 · InnoDB · 性能排查 · mysql innodb 锁等待 information_schema.innodb_trx 未提交事务
使用 INFORMATION_SCHEMA.INNODB_TRX 可以查看当前仍在 InnoDB 中执行的事务,本文说明如何读取事务状态、开始时间、连接 ID 和修改规模,并区分事务概况与锁关系排查。189 收藏 -
MySQL JSON 列不能直接按普通列建立索引时,可以用生成列提取固定路径,再按明确的数据类型建立二级索引。本文给出建表、改表、查询和适用边界。347 收藏 -
go work sync 面对的是工作区构建列表,不是任意单模块整理命令。本文用 go.work、GOWORK、use 模块和最小版本选择说明它何时会改写 go.mod,以及没有变化时该检查什么。198 收藏 -
Go reflect.TypeFor 适合在泛型代码中获取编译期已知类型的 reflect.Type;动态值仍应使用 reflect.TypeOf。本文用注册表示例说明两者的选择、接口边界和兼容注意事项。218 收藏 -
Go 1.23 的 slices.Chunk 返回的是源切片的连续子切片视图:直接改元素会影响原切片,但每个分块的容量被限制为长度,append 不会沿用这段容量改写源数据。需要独立分块时使用 slices.Clone。337 收藏 -
range over function 是 Go 1.23 才支持的语言语法。本文用最小迭代器示例说明旧版编译器为何无法靠升级依赖获得这项能力,并给出升级工具链、callback 回退和构建约束的选择。269 收藏 -
说明 Go ast.PreorderStack 如何把祖先节点栈传给回调,解释 stack 不含当前节点、返回 false 跳过子树和初始栈参数的边界,并对比 Preorder 与 Inspect。341 收藏