# 性能
`LDAPBackend`经过精心设计,不要求每个请求都连接到`LDAP`服务。当然,这在很大程度上取决于它是如何配置的。如果您的部署需要考虑LDAP流量或延迟问题,则本节将按照影响顺序降低最小化的一些提示。
1. 缓存组。如果`AUTH_LDAP_FIND_GROUP_PERMS`为`True`,则默认行为是在每个请求上重新加载用户的组成员资格。这是最安全的行为,因为任何会员资格变更立即生效,但价格昂贵。如果可能,请将`AUTH_LDAP_CACHE_GROUPS`设置为`True`,以删除大部分流量。
2. 不要访问`user.ldap_user.*`。除`ldap_user.dn`之外,这些属性仅在每个请求的基础上进行缓存。如果您可以将`LDAP`属性传播给用户,则只会在登录时更新它们。 `user.ldap_user.attrs`为其访问的每个请求触发一个`LDAP`连接。
3. 使用更简单的组类型。一些分组机制比其他分组机制更昂贵。这通常不受您的控制,但需要注意的是,更复杂的组类型(如`NestedGroupOfNamesType`)的额外功能不是免费的,通常需要更大数量和更复杂的LDAP查询。
4. 使用直接绑定。用`AUTH_LDAP_USER_DN_TEMPLATE`绑定比依靠`AUTH_LDAP_USER_SEARCH`更有效率。具体而言,每次登录都会节省两次`LDAP`操作(一次绑定和一次搜索)。