2

私は GAE を使用してペット プロジェクトを実行しています。

インデックス付きクエリを実行している大きなテーブル (100K 行) があります。それは問題ないようです。ただし、結果の反復には非線形の時間がかかるようです。いくつかのプロファイリングを行うと、行の最初のバッチ (100 程度) では直線的に動作しているように見えますが、その後崖から落ちて、到達行の取得にますます時間がかかり始めます。コード スケッチは次のとおりです。

q = Metrics.all()
q.filter('Tag =', 'All')
q.order('-created')    
iterator = q.run(limit = 100)
l = []
for i in iterator:
    l.append[i.created]

これが非線形に動作する原因は何ですか?

4

2 に答える 2

0

処理する正確な数がわかっている場合は、フェッチの使用を検討してください。run は結果をより小さなチャンク (デフォルトのバッチサイズは 20) で取得します。これにより、余分なラウンドトリップ操作が発生します。

OOT: リスト変数の名前を変更するのが良いかもしれません。Python リスト関数と同じ名前です :)

于 2013-10-21T07:04:32.783 に答える