0

すべてバイナリ値である最大 80 列のテーブルがあります。私のアプリケーションでは、これらの属性ごとに重みを計算できます。バイナリ値の合計 * 重みが最も高い上位 n 行を抽出できるようにしたいと考えています。

例えば

SELECT id, CAST(attribute_1 AS int) * weight_1 + CAST(attribute_2 AS int) * weight_2 AS スコア WHERE some_filtering_conditions ORDER BY スコア DESC LIMIT n

これは機能しますが、私が望むほど速くはありません。

現在、すべてが Postgres に保存されていますが、他のデータベースの提案も受け付けています。現在、このテーブルには約 8000 行あり、これ以上大きくなる可能性は低いため、すべてをメモリに格納するのは理にかなっていますが、可能であればそれを避けたいと考えています。

4

0 に答える 0