MySQL的LIKE
查询可以触发索引,但仅当它遵循一些特定的模式。当你使用`LIKE`进行查询,并且模式以特定字符开始,后跟一个通配符(`%`)时,索引可以被有效地使用。
例如,如果你有一个名为`users`的表,它有一个名为`name`的列,并且该列有一个索引,以下查询将会触发索引:
SELECT * FROM users WHERE name LIKE 'John%';
在这个例子中,索引将被用来查找所有以'John'开头的名字,这是一种常见的模式,可以使用索引进行优化。
如果你的`LIKE`查询不以特定字符开始,后跟一个通配符(`%`),索引可能不会被使用。例如:
SELECT * FROM users WHERE name LIKE '%John%';
在这个例子中,即使`name`列有索引,查询也不会使用它,因为模式是任意包含'John'的,而不是以'John'开头的。为了使这种查询也能使用索引,你可以考虑使用全文搜索,或者对包含搜索文本的列建立全文索引。