それぞれ数百万のエントリを持つ大規模なデータベースに対して高度な検索クエリを実行する必要があります。
クエリをハードコーディングするのではなく、その場でクエリを作成したかったのです。高度な検索では、さまざまなパラメーター (日付、複数の order_id を含む他の列の id、検索フィールドに一度に指定された order_item など) に応じて検索できます。実際、一括注文検索が主な焦点です。
したがって、クエリの組み立て方が、このアプリの良さの核となります。
何に注意すべきか、または最適化されたクエリのベスト プラクティスに関する提案を探しています。例:
where条件では、より良いインデックスを持つ列を最初に検索し、次に別のパラメーターを検索する必要があります
。基本的select * from orders where order_id in (a,b,c....) and relayed=true;
には よりもはるかに優れていselect * from orders where relayed=true and order_id in (a,b,c....);
ます。As Relayed のインデックス パーセンテージは 50 のみです。true または false のいずれかになる可能性があるため、結果のクエリ セットは依然として大きくなります。
また、エントリがたくさんあるので、これは良い考えですか - http://explainextended.com/2009/08/18/passing-parameters-in-mysql-in-list-vs-temporary-table/
select、join、where、order_byに関連するポイントを説明する一般的な例を考え出してください。このような大きなテーブルに対するクエリはどのように構成する必要がありますか?
この質問の一般的な性質をお詫びしますが、率直に言って、役立つと思いました。