如何为字符串/varchar 前缀创建索引?

How to create a index for a string / varchar prefix?

我想创建一个索引来提高查询的性能,例如:

SELECT * FROM example WHERE name LIKE 'Chris%'

如何实现以上目标?

该查询将受益于 name 列上的索引:

alter table example add index name (name);

如果 name 列是一个长列,您也可以只索引一个前缀:

alter table example add index name (name(50));

请注意,索引仅对尾随通配符有帮助,对前导通配符没有帮助。例如,这些列 不会 从索引中受益:

SELECT * FROM example WHERE name LIKE '%Chris%'
SELECT * FROM example WHERE name LIKE '%Stryczynski'