示例
示例
-- 精确计数:条件列有索引时可减少扫描量
SELECT COUNT(*) FROM orders WHERE user_id = 100;
-- MySQL 近似行数(InnoDB 估算,仅用于趋势参考)
SELECT table_rows FROM information_schema.tables
WHERE table_schema = 'shop' AND table_name = 'orders';
-- PostgreSQL 近似行数
SELECT reltuples::bigint AS estimate FROM pg_class WHERE relname = 'orders';| InnoDB 机制 | 不维护行数缓存:COUNT(*) 选择代价小的索引扫描 |
|---|---|
| 近似值 | MySQL 看统计信息估算;PG 用 reltuples(ANALYZE 后更新) |
| 高频精确计数 | 维护计数表或增量汇总,把成本转移到写入侧 |