MySQL COUNT 哪个最快
FreeGuideOnline
最新
2026-07-04
sql ALTER TABLE your_table ADD INDEX idx_small (tinyint_column);
或者用一个数字列甚至一个固定值列。后续的 `COUNT(*)` 会自动选择这个最“瘦”的索引,扫描页数大幅降低。
### 2. 使用缓存计数器(汇总表)
对于需要频繁获取精确行数的大表,可以在业务层维护一张统计表:
```sql
CREATE TABLE table_counts (
table_name VARCHAR(50) PRIMARY KEY,
cnt BIGINT NOT NULL DEFAULT 0
);
配合触发器或应用程序逻辑,在 INSERT/DELETE 时同步更新 cnt,使 SELECT cnt FROM table_counts WHERE table_name = 'xxx' 变成毫秒级点查。代价是写入时会多一次更新操作。
3. 使用近似计数(SHOW TABLE STATUS)
如果允许一定误差,可以直接读取表的统计信息:
SHOW TABLE STATUS LIKE 'your_table';