MST

星途 面试题库

面试题:SQLite 数据库索引优化

在 SQLite 数据库中,假设有一个包含大量记录的 'employees' 表,表结构为(id INTEGER PRIMARY KEY, name TEXT, age INTEGER, department TEXT)。现在需要频繁根据姓名查询员工信息,请问如何通过索引优化查询性能?请写出创建索引的 SQL 语句,并解释索引在这种场景下的工作原理。
10.7万 热度难度
数据库SQLite

知识考点

AI 面试

面试题答案

一键面试
  1. 创建索引的 SQL 语句
CREATE INDEX idx_employees_name ON employees (name);
  1. 索引在这种场景下的工作原理
    • 索引就像是一本书的目录。在这个例子中,idx_employees_name 索引是基于 employees 表的 name 列创建的。
    • 当执行根据姓名查询员工信息的 SELECT 语句时,比如 SELECT * FROM employees WHERE name = 'John';,如果没有索引,SQLite 数据库需要全表扫描,即逐行检查每一条记录的 name 列是否为 John
    • 而有了索引后,数据库可以直接通过索引找到 nameJohn 的记录在表中的位置,就像通过书的目录快速定位到特定内容所在页一样,大大减少了需要扫描的数据量,从而提高了查询性能。