1. maven install
它的核心作用是:编译 → 测试 → 打包 → 安装到本地仓库
也就是说,它不仅构建项目,还会把生成的 .jar 或 .war 文件 放入本地 Maven 仓库,供本机其他项目使用。
当你执行 mvn install,Maven 实际上会从最开始的生命周期依次执行到 install 阶段,流程如下:
阶段
命令
说明
validate
验证项目结构
检查 pom.xml合法性、依赖是否齐全等
compile
编译
编译 src/main/java 下的源码
test
测试
编译并运行 src/test/java下的单元测试
package
打包
打包成 .jar 或 .war(由 pom.xml的 决定)
install
安装
把打包好的产物放到本地仓库中
2. MYSQL表空洞
表空洞”就是 MySQL 表在运行过程中,由于删除、更新、页分裂等操作产生的、暂时或长期无法被有效利用的物理存储空间。
表现就是:表文件越来越大,数据量没变,磁盘占用居高不下,这些就是“空洞”。
成因
- 大量删除:删除行只是把行标记为删除,页里留下空槽,需要合并或回收才会被释放到文件系统(尤其是 InnoDB)。
- 频繁更新(行变长):变长字段(VARCHAR、TEXT、BLOB)更新时可能导致行移动或页分裂,留下空白页或空槽。
- 页分裂与合并不足:B-tree 的页分裂会产生不满的页,短时间内不会自动填满。
- MVCC/undo 存活版本:长事务/未提交事务会保留旧版本,阻碍空间回收。
- 堆积的二级索引碎片:不仅主键,二级索引也会有碎片。
修复方法:
简单粗暴的(会锁表):OPTIMIZE TABLE your_table;对 MyISAM 是重建索引;对 InnoDB(file-per-table)会重建表并回收空间,期间表会被锁(新版本 MySQL 会尽量做在线重建,但仍有风险)。
在线/无感知的方法(大表推荐):使用一些工具,在线重建表。
3. 外部接口费用治理
费用,应该纳入监控体系。定时看多少钱,属于滞后监控。很容易烧完钱才监控到。
“费用治理”不是财务问题,而是技术监控问题。只要把“外部接口调用”视作“带成本的资源”,像监控 CPU 一样监控它,就能提前发现、提前反应、提前止损。
技术上大致就是Prometheus + Grafana。