索引有什么作用?

一句话概念

索引(Index) 就像是数据库里的“目录”或“书的索引页”。
它的主要作用是:

加快查询速度,减少数据库扫描整张表的次数。


📖 举个简单的例子

假设你有一个商品表 products,里面有几万条记录。
如果你执行下面的查询:

SELECT * FROM products WHERE brand = 'Nike';
  • 如果没有索引,SQLite 必须从头到尾一行行地去找,叫做全表扫描(Full Table Scan),很慢。

  • 如果给 brand 字段建了索引:

    CREATE INDEX idx_product_brand ON products(brand);
    

    那么数据库会像查字典一样,直接跳到 “Nike” 那一页,瞬间定位到结果。


🚀 索引的作用总结

功能 说明
🔍 加快查询速度 WHEREJOINORDER BYGROUP BY 等操作提速
提高排序性能 如果查询语句中带 ORDER BY category,而该列有索引,会自动利用索引排序
🔗 提高关联性能 当你 JOIN 两张表时,若连接字段有索引,匹配更快
🧭 帮助唯一性约束 UNIQUE 索引可以防止重复值(比如 product_code

⚠️ 注意事项(索引的代价)

虽然索引很强大,但也有 副作用

问题 说明
🐢 插入/更新变慢 每次修改数据时,索引也要更新
💾 占用空间 索引要额外占磁盘空间(有时比表还大)
📉 索引太多会拖慢性能 不是越多越好,常用的查询列才值得建索引
posted @ 2025-10-16 21:49  林也  阅读(6)  评论(0)    收藏  举报