主キーとして約8つのフィールドを含む非常に大きなテーブル(数百万のレコード)があります。簡単にするために、テーブルは次のようになっているとしましょう。
key_1 | key_2 | key_3 | ... | key_8 | value
key_1の値が与えられた場合、次の行に沿ってkey_2、key_3、...、key_8のすべての可能な値をフェッチする必要があります。
SELECT DISTINCT key_2 FROM table1 WHERE key_1 = 123;
SELECT DISTINCT key_3 FROM table1 WHERE key_1 = 123;
...
SELECT DISTINCT key_8 FROM table1 WHERE key_1 = 123;
私の問題は、このクエリがパフォーマンスのニーズよりも大幅に遅く、このテーブルのデータがかなり一定であり、更新されることはめったにないことです(数日に1回)。また、table_1は遅いサブクエリである可能性があります。データベースに追加のテーブルを作成し、データベースが更新されるたびに手動で更新する以外に、迅速な結果を得ることができる別のソリューションがあります。複数のMySQLセッションで機能するために必要です。