分类: 编程教学

SQL XA 分布式事务的二阶段提交与单机事务性能代价权衡

SQL XA 分布式事务的二阶段提交与单机事务性能代价权衡

因为 XA 强制引入网络往返和全局协调开销,不是“加个开关就能用”的平滑升级。单机事务在内存里完成的 commit,XA 至少要走两次 RPC:一次问所有参与者“准备好了吗”,一次再统一发“提交”或“回滚”。中间还夹着事务管理器(TM)持久化日志、等待超时、协调失败重试等环节。

HTML 中实现标题间距归一化的透明占位方案

HTML 中实现标题间距归一化的透明占位方案

当页面中某些标题区域存在动态内容(如图标、徽章等),而其他区域缺失时,为保持视觉间距一致,需用等尺寸透明占位元素替代隐藏元素,避免因 `visibility: hidden` 或 `hidden` 属性引发构建错误。

Laravel 6 中实现编辑时忽略当前记录的唯一性验证

Laravel 6 中实现编辑时忽略当前记录的唯一性验证

在 laravel 6 中编辑数据时,需校验字段(如 name)在数据库中全局唯一,但必须排除当前记录自身,避免因未修改字段而触发误报;本文详解如何通过 `unique` 规则的参数组合实现该逻辑。

SQL 大表加字段的在线变更与默认值填充性能优化路径

SQL 大表加字段的在线变更与默认值填充性能优化路径

MySQL 5.6 之前,ALTER TABLE ADD COLUMN 带 DEFAULT 值会触发全表拷贝,加写锁、阻塞 DML,尤其在千万级以上大表上可能卡住数小时。5.7+ 引入了“instant DDL”机制,但仅对不带默认值或默认为 NULL 的列生效;一旦指定非空默认值(如 DEFAULT ‘0’ 或 DEFAULT 1),仍会退化为 copy-alter。

SQL 索引与表设计优化实践

SQL 索引与表设计优化实践

常见现象是执行 EXPLAIN 看到 type 是 ALL 或 index,而不是预期的 ref/range。根本原因往往不是索引没建,而是查询写法触发了隐式类型转换或函数包裹。