MST

星途 面试题库

面试题:MySQL中索引列在搜索条件里的基本优化策略

在MySQL数据库中,假设我们有一张用户表 `users`,包含字段 `id`(主键自增)、`name`(字符串类型)、`age`(整型)和 `email`(字符串类型)。现在要查询年龄在20到30岁之间且名字以 'J' 开头的用户,为了优化这个查询,应该如何对相关列建立索引?请写出建索引的SQL语句,并简要说明原因。
12.0万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

可以在 nameage 列上建立联合索引来优化查询。

建索引的SQL语句如下:

CREATE INDEX idx_name_age ON users (name, age);

原因:联合索引可以加快多条件的查询速度。在这个查询中,先按 name 过滤以 'J' 开头的用户,再按 age 过滤年龄在20到30岁之间的用户。索引顺序与查询条件顺序相关,MySQL 可以利用该联合索引快速定位到符合条件的数据行,减少全表扫描,提高查询效率。