1

SQLite クエリを実行するとき、返されるデータ セットのサイズはクエリにかかる時間に影響しますか? この質問では、結果のデータに実際にアクセスしていないと仮定しましょう。クエリ自体に時間がかかるかどうかを知りたいだけです。また、単純にすべての行を選択しており、WHERE 句や ORDER BY 句はないと仮定しましょう。

たとえば、2 つのテーブル A と B があるとします。テーブル A に 100 万行、テーブル B に 10 行あり、両方のテーブルの列の数と種類が同じであるとします。テーブル A のすべての行を選択すると、テーブル B のすべての行を選択するよりも時間がかかりますか?

これは私の質問へのフォローアップです。カーソルは削除された行をどのように参照しますか? . クエリ中にSQLiteがデータのコピーを作成すると、データベース内のデータに変更があった場合にのみクエリ結果データをコピーする最適化がない限り、大きなデータセットを返すクエリに時間がかかる可能性があると推測していますクエリがまだ生きている間?

4

1 に答える 1

0

一部の詳細に応じて、はい、クエリには異なる時間がかかる場合があります。

例:20kのエントリがあるテーブルがあります。LIMITを使用して、すべての行を試行する必要があるGLOB検索を実行します。LIMITに達すると、クエリを早期に停止できます。そうでない場合は、テーブル全体(またはJOIN)を通過する必要があります。したがって、結果が多すぎる検索は、結果が少ない検索よりも早く返されます。

クエリが同じ量のデータを処理する必要がある場合、選択した行の量が少ない場合と多い場合で大きな違いはないと思います。もちろん、おそらくIOコストがかかるでしょう。

于 2012-04-25T09:21:41.327 に答える