一般统计总行数会使用count(*) 或者 count(1),具体每个表的执行效率可以通过explain来查看。一般会以为优化空间不大,这里提供几种拓展思路。
- show table status like 表名
show table status like 'employees_inndb'
- 将总数维护到Redis里
插入或删除表数据行的时候同时维护redis里的表总行数key的计数值(用incr或decr命令),但是这种方式可能不准,很难保证表操作和redis操作的事务一致性
- 增加数据库计数表
插入或删除表数据行的时候同时维护计数表,让他们在同一个事务里操作