← 全部文章

技术与生活 / 一篇记录

加索引之前,先看查询怎么找数据

索引更像辅助查找结构,不是所有查询的加速按钮。过滤条件、排序方式和数据分布都会影响收益,维护索引也会增加插入与更新成本。

索引适合帮助定位记录,但会增加写入成本和存储占用。

实际怎么检查

查询示例以 SQLite 为例;notes 为测试表,包含 id、title、score、category、created_at 字段。

CREATE INDEX idx_notes_category ON notes(category);

结合查询计划观察分类查询是否使用索引。

遇到异常再检查什么

用具有代表性的数据量比较计划和执行时间。不要因为某个小样本变快,就给每个字段都加索引;写入负载和磁盘占用也需要一起观察。

复合索引还涉及字段顺序。一个为特定过滤与排序组合设计的索引,并不一定同样适合只使用其中任意一列的查询。评估时应围绕真实查询模式,而非字段数量。

小表或低选择性条件下,不走索引不一定是异常。

参考:SQL 文档。

搜索文章

输入关键词,找回一篇记录。