索引的原理是通过创建一种数据结构,帮助快速查找和访问数据。
常用数据结构
B树/B+树:常用于数据库,支持高效的查找、插入和删除操作。
哈希表:适合等值查询,速度快但不支持范围查询。
倒排索引:用于全文搜索,通过单词映射到包含它的文档。
索引组成
索引由键和指向数据的指针组成
键:数据中的某个字段或属性;
指针:指向数据存储位置。
创建与维护
创建:在数据上建立索引时,系统会生成并存储索引结构;
维护:数据更新时,索引也需要同步更新,以保持一致性。
查询优化
索引的主要目的是加速查询
快速定位:通过索引直接找到数据,避免全表扫描;
减少I/O:索引通常存储在内存或快速存储设备中,减少磁盘I/O。
索引类型
单列索引:基于单个列;
复合索引:基于多个列;
唯一索引:确保键的唯一性;
全文索引:用于文本数据的全文搜索。
优缺点
优点:加快查询速度,提升性能。
缺点:占用存储空间,增加写操作的开销。
应用场景
数据库:加速SQL查询;
搜索引擎:快速检索文档;
文件系统:加快文件查找。