Employee(Name、Age、Gender)テーブルがあり、行数が10000を超えているとします。名前に「ニックネーム」があり、年齢が18歳から24歳までの従業員を探したいと思います。結果を検索する方法は2つあります。 1つは、名前に「ニックネーム」が含まれているすべての従業員を検索し、メモリ内でフィルタリングを実行するクエリを実行することです。もう1つは、正確なクエリを実行して最終結果を得ることです。どちらのオプションがより優れているのですか?クエリを実行してメモリ内の結果をフィルタリングするか、正確なクエリを実行します。
0
A
答えて
2
ほとんどのパフォーマンスに関する質問では、答えは「あなたのデータとシステム上で実行し、どちらが良いかを確認する」です。
しかし、この場合、答えは明らかです。データベースで作業を行う。それがデータベースの目的です。
あなたは数キロ離れた友人に自転車を貸したいとします。自転車に乗ることができます。これは、データベースでクエリを実行するようなものです。これは、システムを設計された方法で使用しているためです。または、バイクを歩くこともできます。これは、すべてのデータをアプリケーションに戻すようなものであり、不要なオーバーヘッドが発生します。
私は自転車の類推を続けることができました。自転車にはさまざまな地形に役立つ歯車があるように、データベースには索引などの構造があり、照会を高速化できます。自転車に乗らないことで、あなたはそれらの利点を先取りしています。
関連する問題
- 1. Codeigniterの前のクエリの結果に基づいてクエリを実行します。
- 2. 異なる仕様のPosgreSQLクエリを実行して結果を保存する
- 3. XMLHttpRequestを使用してSQLクエリを実行し、結果を返します。
- 4. sqlクエリを実行し、結果セットをループで返す
- 5. Javaからneo4jデータベースのクエリを実行し、結果を解析します。
- 6. pgPromiseクエリの結果からSQL文を実行する
- 7. JavaScriptをパラメータに渡してmysqlクエリを実行し、結果を取得する
- 8. 大きなクエリを実行するとメモリが不足していますか?
- 9. 別のSQLクエリの結果に基づいてクエリを実行する
- 10. 別のSQLクエリの結果からinsert文を実行するSQLクエリ
- 11. 別のsparqlクエリのすべての結果に対してsparqlクエリを実行します。
- 12. ドロップダウンメニューの結果を取得して別のクエリを実行する
- 13. クエリを実行し
- 14. python(pyodbc):pythonの結果からmsエラーのクエリを実行します。
- 15. 別のmysqlクエリの結果に基づいてMySQLクエリを実行していますか?
- 16. コードシニターで複数のクエリを実行し、最初の結果に基づいて結果を返します
- 17. 別の結果のGraphQLクエリを実行する
- 18. ElasticSearch - 結果がない場合はもう一度クエリを実行します。
- 19. SQLAlchemyを使用してクエリ内でクエリを実行できますか?
- 20. PHPはクエリを実行しますか?
- 21. 同じLinq結果に対して複数のLinqクエリを実行する
- 22. BigQuery - クエリに対してクエリを実行できますか?
- 23. Doctrine Query Builderを使用して結合クエリを実行する
- 24. AWS Lammbdaを使用してデータベースにクエリを実行し、結果をGeckoboardにプッシュ
- 25. 複数のSQLが2つのクエリを実行し、1つの結果の結果を照会します。
- 26. MongoDB - オブジェクト内の複数の属性に対してクエリを実行し、結果をグループ化する方法
- 27. クエリ/ procを使用して複数のクエリを実行する
- 28. プロトタイプajaxが正しくクエリを実行していない
- 29. 実行中のクエリをキャンセルします
- 30. Ember.JS - Submitボタンはクエリを実行し、JSONオブジェクトをテンプレートに返します。クエリをサービス内、モデルとして、またはルート内で実行しますか?
私は、類推の後半はあなたの自転車を離れて、あなたの友人の家に運んで、歩いて戻って一緒に戻すことができると言っています* –
はい、歯車を分けてそれらを一緒に戻すことは、私が今やっていることによく似ています。そして、この質問をもう少し詳しく調べて、基本的なクエリがあり、私が頻繁に使用するデータのコレクションを返すと、このコレクションをさまざまな条件で頻繁にフィルタリングして使用するとします。この場合、単一のクエリを実行してフィルタリングするよりも、正確なクエリの多くをまだ実行していますか?コードの複雑さのような他の観点から? – user1657564
@ user1657564 。 。これは異なるトレードオフのセットです。強力なデータベースは、インデックスを使用したフィルタリングを行うことができます。 *すべての*クエリから返されるデータの総量がテーブルのサイズよりも大幅に大きい場合、データをローカルに格納することは意味をなさないかもしれません。あなたは砂の上に自転車を持っていなければならないと想像してください。 。 。歩くことは状況によっては意味をなさないかもしれません。それは一般的にはお勧めできません。 –