数据库索引
一句话:索引是数据库用来快速查找数据的结构,能提升查询速度,但也会增加写入和维护成本。
它是什么
数据库索引可以理解成书的目录。没有索引时,数据库可能需要一行一行找;有合适索引时,可以更快定位结果。索引常用于用户ID、订单号、邮箱、创建时间等经常查询或排序的字段。
适合干什么
- 后端新手
- 正在做管理后台的人
- 遇到查询慢的人
- 使用MySQL、PostgreSQL或SQLite的人
不适合干什么
- 数据量很小且查询很少的临时表
- 完全不了解查询条件就乱加索引
- 希望索引解决所有性能问题的人
普通人怎么用
- 找出最常用的查询条件
- 优先给唯一字段或高频筛选字段加索引
- 查询慢时查看执行计划
- 不要给每个字段都加索引
- 修改后对比查询速度
进阶用户怎么用
- 根据WHERE、ORDER BY、JOIN设计组合索引
- 注意最左前缀原则
- 避免低区分度字段单独建索引
- 定期清理无用索引,降低写入成本
常见误区
- 以为索引越多越快
- 给性别、状态这类低区分字段乱加索引
- 组合索引字段顺序写错
- 加了索引但查询写法用不上
和相似工具的区别
- 主键:用于唯一标识一行数据,通常自带索引。
- 普通索引:用于加速查询,不一定唯一。
- 唯一索引:既加速查询,又保证字段值不重复。
入门步骤
- 确认慢查询
- 分析查询条件
- 设计索引
- 查看执行计划
- 上线前测试
- 监控写入影响
推荐工具(第三方)
MySQL、PostgreSQL、SQLite、Prisma、DBeaver