我正在开发ECM软件,其中一组用户拥有文件夹权限。当文件夹树较大时,它可以在数据库上生成大量行,如30k或更多。
权限表结构如下
group_folder_roles
主要问题是当我必须加载具有构建用户文件夹树的权限的所有文件夹时。
还有更好的方法吗?
UPDATE
我在代码上做错了什么并没有意识到。我不知道我怎么没注意到。
后者我正确地测量了响应时间并且大约是300毫秒,并且发现问题是实体框架查询,转换为JSON和传输的总和。
我使用ADO修复并简化了返回JSON的传输过程,如下所示:
{
"folder" : 0,
"roles" : '0,1,2,3,4,5,6'
}
为了更好,我压缩结果。
如果30k行给您带来性能问题,您需要了解原因。你可能做错了。很难在我使用过的dbs中遇到性能问题,直到你获得几十万行并且听起来比你的数量小一个数量级。以下是您需要了解的一些内容:
CONNECT BY
方法还是使用更标准的WITH RECURSIVE
公用表表达式来支持递归查询?这样可以更好地利用索引和管理结果。