权限表上的性能问题

问题描述 投票:1回答:1

我正在开发ECM软件,其中一组用户拥有文件夹权限。当文件夹树较大时,它可以在数据库上生成大量行,如30k或更多。

权限表结构如下

group_folder_roles

  • id_group
  • id_folder
  • id_role

主要问题是当我必须加载具有构建用户文件夹树的权限的所有文件夹时。

还有更好的方法吗?

UPDATE

我在代码上做错了什么并没有意识到。我不知道我怎么没注意到。

后者我正确地测量了响应时间并且大约是300毫秒,并且发现问题是实体框架查询,转换为JSON和传输的总和。

我使用ADO修复并简化了返回JSON的传输过程,如下所示:

{
   "folder" : 0,
   "roles"  : '0,1,2,3,4,5,6'
}

为了更好,我压缩结果。

sql database database-design database-schema
1个回答
1
投票

如果30k行给您带来性能问题,您需要了解原因。你可能做错了。很难在我使用过的dbs中遇到性能问题,直到你获得几十万行并且听起来比你的数量小一个数量级。以下是您需要了解的一些内容:

  1. 您的rdbms是通过Oracle类型的CONNECT BY方法还是使用更标准的WITH RECURSIVE公用表表达式来支持递归查询?这样可以更好地利用索引和管理结果。
  2. 您可以查看权限是否最好使用规范化设计建模,或者ACL数组是否会表现更好。这取决于RDBMS
  3. 与上面的#2紧密相关的是索引如何处理特定的rdbms。他们帮了多少钱?你能做些什么来充分利用它们?
© www.soinside.com 2019 - 2024. All rights reserved.