本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/count_table_skill.html
对于InnoDB及其他一些不能很快统计行数的存储引擎,对于频繁的count(*)操作,就是一种噩梦了,它可能要遍历一遍索引或者数据行才能知道有多少行。
这种时候我们比较容易想到的方法就是设计一个计数表,每次增删记录,就更新这个表:
CREATE TABLE cnt_tbl ( tbl VARCHAR(20) NOT NULL PRIMARY KEY COMMENT '表名', cnt INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '计数' ); |
先为要计数的表初始化
INSERT INTO cnt_tbl(tbl, cnt) VALUES('A', 0); | …