次のように複数の列から値を数えます。
SELECT COUNT(column1),column1 FROM table GROUP BY column1
SELECT COUNT(column2),column2 FROM table GROUP BY column2
SELECT COUNT(column3),column3 FROM table GROUP BY column3
これは、たとえば column1 array(attr1 => 2000, attr2 => 3000...) を返します (各列には特定の少数の値があります)。問題は、私のアプリケーションの「テーブル」が、いくつかの結合と where 句を含むクエリである可能性があり、0.1 秒かかる場合があることです。カウントするすべてのことを行うことで、「テーブル」が毎回計算されますが、これは必要ありません。1 つのクエリで必要な結果を取得する方法、またはテーブルを生成するクエリを「キャッシュ」する方法はありますか? そうでなければ、非正規化がここでの唯一の解決策になると思います。そして、上記のクエリで同じ結果が必要です。私はmysql-myisamを使用しています。