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