Files
KodouWZF c5d19f47a2 perf(传输): xs_file_record.md5_code 补索引
文件入库时用 MD5 做内容去重查询(FileServiceImpl 上传后 find(md5Code)),
该列此前没有索引,每个文件入库都是一次全表扫描。解包一个含 N 个文件的
传输包就是 N 次全表扫描,300 人规模下 xs_file_record 达数万行时,
单文件入库可省几十到几百毫秒,100 个文件的包可省数秒到数十秒。

按 init 与 upgrade 双写:MySQL 版 DDL 加 KEY,PG 版加 CREATE INDEX,
新建 upgrade-20261103-transfer-perf.sql 供已上线环境增量执行
(DM8 走第 1 节,PG 走第 2 节,并给出 CONCURRENTLY 备选)。
交付包 sql/01-init-table.sql 按 README 要求从仓库整份覆盖,不手改副本。
2026-11-03 22:03:33 +08:00
..

建表与初始数据脚本已随包放好,文件名前缀决定执行顺序(先建表后灌数据):

文件 来源 说明
01-init-table.sql backend/db/init-table-postgres-full.sql 全量 DDL,含 x_file_security 安全检测表
02-init-data.sql backend/db/init-data.sql admin 账号、机构、平台编码(system.code=1 要与此一致)

出盘时用 scripts/export-images.sh 从仓库重新覆盖这两份,别手改副本; 增量升级脚本(backend/db/upgrade-*.sql)不在这里,装好后按《部署说明.md》第 7 节人工执行。

只有 POSTGRES_* 指向的库为空时,PostgreSQL 官方镜像才会执行 docker-entrypoint-initdb.d; 数据目录已有数据时会跳过 —— 想重建就把 $SFILE_DATA_ROOT/pgdata 一起清掉再 up。