A computed column normally means a value you can calculate per row. MySQL does not support that, but SQL Server does. For example, to store the sum of two columns permanently:
create table Table1 (a int, b int, c as a+b persisted)
However, you're looking to store an aggregate, that is, a value for a group of rows. MySQL and SQL Server don't support materialized views with an aggregate, but Oracle does:
create table Table1 (a int, b int);
create materialized view View1 as
select a
, count(*) as Cnt
from Table1
group by
a;
With MySQL however, the closest you can do is a cronjob that periodically populates a table:
truncate table Table1Summary;
insert Table1Summary (a, Cnt) select a, count(*) from Table1;
You can query the table like a materialized view; it will be as fast, but not guaranteed to be up to date.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…