# 什么时候应该给数据库表添加索引？

Canonical URL: https://help.iagenify.com/zh/faqs/databases/when-should-i-add-an-index-to-a-database-table

[← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)

帮助中心 · 常见问题 数据库 1 分钟阅读
# 什么时候应该给数据库表添加索引？
如果经过测量的查询反复按相同列筛选、连接或排序，并扫描了过多数据，可以考虑添加索引。先查看查询计划和工作负载：索引能加快部分读取，但会占用存储并增加写入成本。
IaGenify
数据库

## 依据实际查询负载判断
找出慢查询，并比较读取行数与返回行数。对于大型表，如果选择性较高的条件或连接键能定位到较小的数据范围，索引可能有帮助。
复合索引中的列顺序很重要；与查询模式不匹配的索引可能不会被使用。请查看所用数据库引擎的具体建议，不要给每个筛选列都盲目加索引。
## 权衡读取速度与写入成本
相关插入、更新和删除操作可能都需要维护索引项。索引过多会拖慢写入、占用额外存储，并增加模式变更的复杂度。
使用有代表性的数据比较添加索引前后的延迟和资源消耗。只有整体工作负载得到改善时才保留索引，并确认目标查询确实使用了它。 [← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)
