面试题答案
一键面试普通索引
- 定义:最基本的索引类型,没有任何限制,用于加速对某列数据的查询。
- 优势:提升查询效率,在全表扫描时减少扫描的数据量。
- 适用场景:经常用于where子句中条件判断的列,如查询某个城市的用户,对城市列添加普通索引可加快查询。
唯一索引
- 定义:索引列的值必须唯一,但允许有空值。
- 优势:保证数据的唯一性,同时也能提高查询效率,类似于普通索引,但在插入或更新时会检查唯一性。
- 适用场景:用于需要确保唯一性的字段,如身份证号、邮箱等,防止重复数据插入。
主键索引
- 定义:特殊的唯一索引,不允许有空值,一个表只能有一个主键索引。
- 优势:保证数据的唯一性和完整性,并且在查询时可以快速定位到具体记录,性能非常高。
- 适用场景:作为表的唯一标识字段,如用户表中的用户ID,常用于关联查询和主键查询。
全文索引
- 定义:用于在文本类型(如text、varchar等)的字段上进行全文搜索,能够处理更复杂的文本查询。
- 优势:支持对文本内容的分词搜索,比普通索引在处理文本查询时更加高效,能处理模糊匹配、多词查询等。
- 适用场景:适用于文章内容、商品描述等长文本字段的搜索场景,如新闻网站的文章搜索、电商平台的商品描述搜索。
组合索引
- 定义:由多个列组合而成的索引,这些列的顺序很重要。
- 优势:可以覆盖多个查询条件,提高查询效率,减少索引数量,节省存储空间。
- 适用场景:当查询条件经常是多个列同时使用时,如根据城市和年龄查询用户,可创建城市和年龄的组合索引。注意遵循最左前缀原则,即查询时条件要从索引最左边的列开始使用。