Mig*_*Prz 5 python flask flask-login flask-security
在我的应用程序中,我使用了flask-security来添加身份验证和授权主题。SQLAlchemy 也用作数据提供者(使用 MySQL 作为后端)。该应用程序运行良好。
然后,我做了一些 MySQL 跟踪,日志显示在应用程序请求的每个 URL 处,flask-security 库发送两个数据库查询:
select ... from user where user.id = 'the user identifier' select ... from role, roles_users ...我认为这是一个性能问题,我喜欢尽量减少这些查询。我不知道是否有我缺少的配置功能。
如果不进行进一步优化(例如使用 Redis 缓存 SQL 响应或用户对象),我认为您无法避免第一个请求。在大多数情况下,您需要有关用户的数据,并且您不希望将这些数据存储在用户的会话 cookie 中。同样,您可以使用 Redis 之类的东西在服务器端存储这些信息,并通过会话 ID 进行索引。
但是,您可能可以使用 JOIN 来避免第二个请求。通过同时执行第一个和第二个请求,将为您节省一些传输时间+数据库将能够选择合适的查询计划。