-1

フィルターのような 50 個のパラメーターの組み合わせに基づいて検索を行うにはどうすればよいですか? これらのフィルターは、価格、色、サイズ、ブランドなどにすることができます。したがって、これらのパラメーターに基づいてさまざまなページを取得できます。したがって、1 つのリンクには価格のブランド サイズ、別の 1 つのサイズのブラン​​ド カラーなどがあります。私の質問は、これらのパラメーターに基づいてデータベースにクエリを実行するためのベスト プラクティスは何かということです。それらを 101101101 の 1 と 0 のシーケンスに暗号化し、それで検索するというアイデアが 1 つあります。

したがって、200万を超える可能な組み合わせがあり、クエリ時間を短縮したいと考えています。btree について聞いたことがありますが、使用方法がわかりません。テーブルの列に適切なインデックスを指定しましたが、この時点から、どの方向に進むべきかわかりません。私のクエリがどのように見えるか。

4

1 に答える 1

0

パラメータを「暗号化」するのは良い考えだと思いますが、「10100010」のようにしないでください。これらの値を文字列として保存する必要があるからです。むしろbase10番号としてエンコードしてください。これは、100101 = 1*32+0*16+0*8+1*4+0*2+1*1 = 37 であることを意味します。もちろん、50 個のフラグを使用すると、bigint として格納するには大きすぎる数値が得られます (これはは 32 バイト)、パラメータを論理的にグループ化し、それらに 2 ~ 3 フィールドを使用するようにしてください。このアプローチの問題は、データのクエリにあります。数値からフラグを抽出する関数を記述して、すべてではなく 1 つのパラメーターのみでデータをクエリできるようにする必要があります。

于 2013-09-18T10:41:47.360 に答える