面试题答案
一键面试- 添加索引:
- 为
age
和registration_date
字段添加复合索引。因为复合索引的使用原则是“最左前缀”原则,先对age
进行过滤,再对registration_date
进行过滤,这样可以有效利用索引。 - 执行以下 SQL 语句添加复合索引:
ALTER TABLE users ADD INDEX idx_age_registration_date (age, registration_date);
- 为
- 查询语句:
- 使用添加索引后的查询语句:
SELECT id, name, age, email, registration_date FROM users WHERE age BETWEEN 25 AND 35 AND registration_date > '2023 - 01 - 01';
- 这样在查询时,MySQL 可以利用索引快速定位符合条件的数据,从而提升过滤效率。避免在
WHERE
子句中对字段进行函数操作(如DATE(registration_date)
),因为这会导致索引失效,影响查询性能。同时,确保数据库统计信息是最新的,以便查询优化器能够生成更高效的执行计划,可以通过ANALYZE TABLE users;
来更新统计信息。