models/file.go,RemoveFilesWithSoftLinks方法有问题,删除文件夹时会调用RemoveFilesWithSoftLinks检测文件夹里的文件是否被别人转存过,如果转存过就只删除数据不删除文件,当文件夹是空的,or条件没附加sql语句就成了,SELECT * FROM myl_files
WHERE files
.deleted_at
IS NULL;读取全部数据,数据量少的没有问题,我这里已经有了百万条数据,这么执行程序直接报内存溢出卡退了。
临时修复方案:
filteredFiles := make([]File, 0)后新增一行
if len(files) == 0 {
return filteredFiles, nil
}
另外这个查询语句会拼接大量的or查询,严重影响效率啊,建议优化一下。