选择性评估与创建
选择性评估与创建
-- 估算不同前缀长度的区分度
SELECT COUNT(DISTINCT LEFT(url, 12))/COUNT(*) AS sel12,
COUNT(DISTINCT LEFT(url, 20))/COUNT(*) AS sel20
FROM appdb.pages;
-- 建前缀索引
ALTER TABLE appdb.pages ADD INDEX idx_url (url(20));| 收益 | 索引体积小、可写性好 |
|---|---|
| 代价 | 无法用于覆盖索引与部分排序 |
| 选择 | 前缀长度让选择性接近全列即可(如 95%+) |
前缀索引的 key_len 显示为前缀字节数,比对执行计划时注意。