sqlalchemy を使用する場合、式ツリーを作成するプロセス全体を実行してから、そこからクエリを再度作成するのは無駄な時間のように思えます。ときどき発生する動的クエリを除けば、アプリケーションの存続期間中、ほとんどすべてがまったく同じです (もちろんパラメーターは別として)。
クエリを作成したら保存し、後で別のパラメータで再利用する方法はありますか? それとも、すでに似たようなことをしている内部メカニズムがあるのでしょうか?
sqlalchemy を使用する場合、式ツリーを作成するプロセス全体を実行してから、そこからクエリを再度作成するのは無駄な時間のように思えます。ときどき発生する動的クエリを除けば、アプリケーションの存続期間中、ほとんどすべてがまったく同じです (もちろんパラメーターは別として)。
クエリを作成したら保存し、後で別のパラメータで再利用する方法はありますか? それとも、すでに似たようなことをしている内部メカニズムがあるのでしょうか?
SQLAlchemy 1.0 では、オブジェクトbaked
をキャッシュするために特別に設計されたキャッシュである拡張機能が導入されました。Query
オブジェクトの構築と文字列コンパイルの手順をキャッシュして、反復クエリでの Python インタープリターのオーバーヘッドを最小限に抑えます。
公式ドキュメントはこちら: http://docs.sqlalchemy.org/en/latest/orm/extensions/baked.html
データベースから返された結果セットはキャッシュされないことに注意してください。そのためには、以下をチェックしてくださいdogpile.cache
。
http://docs.sqlalchemy.org/en/latest/orm/examples.html#module-examples.dogpile_caching