如何为字符串/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'
我想创建一个索引来提高查询的性能,例如:
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'