| 用途 | 等价改写提效 |
|---|---|
| 常见 | OR→UNION / IN 大列表→临时表 JOIN / 深分页→游标 |
| 原则 | 改写前后都 EXPLAIN |
OR 改写示例
OR 改写示例
-- 原句可能全表扫
SELECT * FROM orders WHERE user_id = 42 OR sku = 'SKU-1';
-- 改写为两次索引访问合并
SELECT * FROM orders WHERE user_id = 42
UNION
SELECT * FROM orders WHERE sku = 'SKU-1';大表计数估算
大表计数估算
-- 精确计数很贵时先用近似
SELECT table_rows FROM information_schema.tables
WHERE table_schema='appdb' AND table_name='orders';改写后结果集必须完全一致(含 NULL/去重/顺序语义),否则性能优化换来数据错误。