5

私のアプリケーションでは、flask-securityを使用して認証と承認のトピックを追加しました。SQLAlchemy はデータ プロバイダーとしても使用されます (バックエンドとして MySQL を使用)。アプリは正常に動作しています。

次に、MySQL のトレースを行ったところ、アプリで要求されたすべての URL で、flask-security ライブラリが 2 つのデータベース クエリを送信することがログに示されています。

  • select ... from user where user.id = 'the user identifier'
  • select ... from role, roles_users ...

これはパフォーマンスの問題だと思うので、これらのクエリを最小限に抑えたいと思っています。不足している構成機能があるかどうかはわかりません。

4

2 に答える 2

1

さらなる最適化 (Redis を使用して SQL 応答またはユーザー オブジェクトをキャッシュするなど) を行わなければ、最初の要求を回避することはできないと思います。ほとんどの場合、ユーザーに関するデータが必要ですが、これらのデータをユーザーのセッション Cookie に保存したくはありません。ここでも、Redis のようなものを使用して、これらの情報をサーバー側に保存し、セッション ID でインデックスを付けることができます。

ただし、おそらく JOIN を使用して 2 番目の要求を回避できます。1 番目と 2 番目のリクエストを同時に行うことで、転送時間を節約できます + DB は適切なクエリ プランを選択できます。

于 2014-07-13T10:12:26.060 に答える