0

それぞれ数百万のエントリを持つ大規模なデータベースに対して高度な検索クエリを実行する必要があります。

クエリをハードコーディングするのではなく、その場でクエリを作成したかったのです。高度な検索では、さまざまなパラメーター (日付、複数の 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に関連するポイントを説明する一般的な例を考え出してください。このような大きなテーブルに対するクエリはどのように構成する必要がありますか?

この質問の一般的な性質をお詫びしますが、率直に言って、役立つと思いました。

4

1 に答える 1

0

何百万ものエントリを持つ大規模なデータベースで高度な検索クエリを実行するには

最良の結果を得るためにオンザフライでクエリを最適化することを使用することをお勧めします

http://sphinxsearch.com/

于 2013-03-08T10:43:34.840 に答える