面试题答案
一键面试原因
在这种情况下,使用复合索引可以显著提升查询性能。因为复合索引会按照索引字段的顺序来存储数据,对于同时基于多个字段的查询,数据库可以利用复合索引快速定位到满足条件的文档,避免全表扫描。
索引创建方式(以MongoDB为例)
假设我们使用的是MongoDB,以下是创建复合索引的代码:
db.collection('yourCollectionName').createIndex({ hobbies: 1 });
上述代码在 hobbies
字段上创建了升序索引。如果要查询同时包含 reading
和 dancing
的文档,MongoDB可以利用该索引快速定位符合条件的数据。
注意事项
- 如果使用其他数据库,如MySQL,对于数组类型的数据,需要将数组数据进行合理拆分存储,然后创建多列的复合索引。例如将
hobbies
拆分成不同记录存储,然后在相关字段上创建复合索引。 - 索引并非越多越好,过多的索引会增加写操作的开销,因为每次写入时数据库都需要更新索引。所以要根据实际查询场景谨慎创建索引。