私はPythonで、次のSQLAlchemyの繰り返しを持っている:2つのSQL反復が異なるのはなぜですか?
for business in session.query(Business).filter(Business.name.like("%" + term + "%")):
print business.name
私は私のリストでは約7000の企業があり、これは下の10ミリ秒で実行されます。すばらしいです!
しかし、より具体的な検索アルゴリズムをサポートしたいと思います。たとえば、&とandなどを一致させたいとします。そこで、私は以下を試した:
for business in session.query(Business):
if term in business.name:
print business.name
後者は実行するのに約600msかかる。フィルタコールでSQLAlchemyは何をしているのですか?私はどのようにしてより速くできますか?
ありがとうございます!
ありがとうございます!そのようなフィルタリング機能を提案できますか?私はSQLiteで作業していますが、MySQLもオプションです。 – Raiders
@Raiders。私は特別なフィルタリング機能を意味するのではなく、 'WHERE'ステートメントを意味します。実際の違いは、この場合、データベースからデータ行を読み込んでPythonオブジェクトを作成するだけですが、現在の設定では** ALL **行をテーブルから読み込み、Pythonオブジェクトを作成して破棄します一部;それらのオブジェクトはまだすべてがメモリにとどまります。 – van