MST

星途 面试题库

面试题:MySQL中如何创建列前缀索引

在MySQL数据库中,假设你有一个表`employees`,其中有一个`description`列,类型为`VARCHAR(255)`,请写出创建该列前缀索引(前缀长度为10)的SQL语句,并简要说明前缀索引在查询优化中的作用。
38.6万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
  1. 创建前缀索引的SQL语句
-- 假设表已经存在,为description列添加前缀索引
ALTER TABLE employees ADD INDEX idx_description (description(10));
  1. 前缀索引在查询优化中的作用
    • 减少索引空间:前缀索引只对列值的前若干字符进行索引,相比完整列索引,占用的存储空间更小。例如对于长字符串列description,如果对整个列建立索引,会占用较大空间,而前缀索引只索引前10个字符,大大减少了索引文件的大小。
    • 提高查询性能:在一些查询中,尤其是在WHERE子句中使用LIKE 'value%'(以特定值开头)这样的查询条件时,前缀索引可以快速定位到符合条件的数据。因为索引是有序的,MySQL可以利用前缀索引快速找到匹配前缀的记录,从而减少全表扫描的范围,提高查询效率。不过,如果查询条件不是以索引前缀开头(如LIKE '%value'),前缀索引通常无法发挥作用。