实时获取数据子表的行数,在主表冗余还是统计子表效率高

每次子表删除一条记录都要返回本子表同主键id的对应的剩余行数。

方案1:在主表冗余一个数量字段num。每次新增子表后update master.num + 1,这样每次要得到值,只需要select num from master
方案2:每次删除一条记录后select count(*) from detail where id = @id

第一种的缺点是要多次执行update,第二种缺点是select count()效率太低
请问,以上2种方式哪种高。数据库是mysql。

阅读 2.1k