計算列とは、通常、行ごとに計算できる値を意味します。 MySQLはそれをサポートしていませんが、SQLServerはサポートしています。たとえば、2つの列の合計を永続的に保存するには:
create table Table1 (a int, b int, c as a+b persisted)
ただし、集計、つまり行のグループの値を格納しようとしています。 MySQLとSQLServerは、アグリゲートを使用したマテリアライズドビューをサポートしていませんが、Oracleは次のことをサポートしています。
create table Table1 (a int, b int);
create materialized view View1 as
select a
, count(*) as Cnt
from Table1
group by
a;
ただし、MySQLを使用する場合、最も近い方法は、テーブルに定期的にデータを入力するcronジョブです。
truncate table Table1Summary;
insert Table1Summary (a, Cnt) select a, count(*) from Table1;
マテリアライズド・ビューのようにテーブルを照会できます。速度は速くなりますが、最新であるとは限りません。