MST

星途 面试题库

面试题:MySQL索引优化相关问题

在MySQL中,假设有一张用户表users,包含字段id(主键)、name、age、email,现在经常需要根据name和age联合查询用户信息,请描述如何创建索引来优化查询性能,并解释这种索引的工作原理。
42.5万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
  1. 创建索引
    CREATE INDEX idx_name_age ON users (name, age);
    
  2. 工作原理
    • 联合索引idx_name_age会按照nameage的顺序存储数据。首先按照name进行排序,如果name相同,再按照age排序。
    • 当执行根据nameage联合查询的SQL语句时,例如SELECT * FROM users WHERE name = '某姓名' AND age = 某年龄;,MySQL可以利用这个索引快速定位到满足条件的数据行。它先在索引中找到name匹配的记录范围,然后在这个范围内再找到age匹配的具体记录,这样就避免了全表扫描,大大提高了查询性能。