数据库表不知不觉到了千万级别数据,使用count看一下全表数据,竟然耗时N秒。
查阅资料,发现这个压根无法优化(Mysql5.6)。
实时业务要用count怎么办?
方案:
重新做个计数表A,每次对B表进行insert或者delete时,就对A表进行 a=a+1操作,可以忽略准确性(不需要加锁,反正也不可能100%准确,错就错吧),然后做定时任务,几个小时就校准一次。
OK啦!
用的时候不用count,直接从A表select出来用吧。错就错了。哈哈
数据库表不知不觉到了千万级别数据,使用count看一下全表数据,竟然耗时N秒。
查阅资料,发现这个压根无法优化(Mysql5.6)。
实时业务要用count怎么办?
方案:
重新做个计数表A,每次对B表进行insert或者delete时,就对A表进行 a=a+1操作,可以忽略准确性(不需要加锁,反正也不可能100%准确,错就错吧),然后做定时任务,几个小时就校准一次。
OK啦!
用的时候不用count,直接从A表select出来用吧。错就错了。哈哈
转载于:https://my.oschina.net/u/2338362/blog/715131