MST
星途 面试题库

面试题:MySQL中如何通过索引避免全表扫描

在MySQL数据库中,假设有一张包含大量数据的用户表`users`,表结构为`(id INT PRIMARY KEY, name VARCHAR(255), age INT, email VARCHAR(255))`。现在要经常根据`name`字段进行查询,请问如何创建索引来避免全表扫描,并解释原因。
13.9万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
  1. 创建索引语句
    CREATE INDEX idx_name ON users (name);
    
  2. 原因解释
    • 在MySQL中,全表扫描意味着数据库需要逐行读取表中的每一条记录来查找满足条件的数据。当表数据量很大时,这种方式效率极低。
    • 索引就像是一本书的目录,通过对name字段创建索引,MySQL可以快速定位到包含特定name值的记录所在的位置,而不需要遍历整个表。例如,当执行SELECT * FROM users WHERE name = '特定名字';这样的查询时,数据库可以利用idx_name索引快速找到对应的记录,大大提高查询效率,避免了全表扫描。