mysql – 使用Plone 4和pas.plugins.sqlalchemy与许多用户
作者:互联网
我一直在使用pas.plugins.sqlalchemy为MySQL提供身份验证和成员数据存储的RDBMS后端.身份验证工作完美,成员数据在RDBMS上正确存储和恢复.目前的用户超过20.000
但是,用户枚举需要很长时间.我已经检查了Plone控制面板/用户和组部分中的“许多用户”,但即使是简单的用户搜索也需要几乎无限的时间.通过调试plugin.py脚本,我注意到enumerateUsers()被调用的次数与存储的用户数一样多;因此,完成简单搜索请求需要大量的CPU时间,因为查询与每个用户名匹配,一次一个用户,一次一个查询.
我在这里错过了什么吗?是不是pas.plugins.sqlalchemy有用,特别是当你有一个非常大的用户?目前,我在我的* acl_users / plugins / User Enumeration *设置中将sql插件作为最高优先级.我应该改变吗?
解决方法:
我几乎继承了维护pas.plugins.sqlalchemy – 但我还没有亲自将它用于少数几个用户.如果你在https://github.com/auspex/pas.plugins.sqlalchemy/issues提交了一个错误,我会看到我能做些什么.
我认为它不会对枚举发生的顺序产生太大影响 – 它仍然必须枚举SQL db中的所有用户.所以它要么在ZODB之前发现,要么在之后发现.听起来似乎问题始于Zope – 每个用户调用enumerateUsers()一次似乎过多 – 但即便如此,也不需要对每个枚举的关系数据库发出请求.
标签:mysql,sql,sqlalchemy,plone,zope 来源: https://codeday.me/bug/20190621/1254760.html