其实 MySQL 中的 like 关键字也能用索引
MySQL中的LIKE关键字确实可以使用索引,前提是使用的模式能够使用索引。当你使用LIKE关键字进行搜索时,如果模式以特定的字符开始(例如LIKE 'abc%'
),并且该列上有一个合适的索引,那么MySQL优化器可能会选择使用这个索引来加快查询速度。
以下是一个使用LIKE关键字并且能够利用索引的例子:
假设有一个表users
,其中有一个列username
已经被索引。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
INDEX (username)
);
如果你想要查找用户名以某个特定字母开头的用户,你可以这样写:
SELECT * FROM users WHERE username LIKE 'A%';
这个查询将会使用username
列上的索引来快速找到所有用户名以字母'A'开头的行。
请注意,如果模式是通配符开始(例如LIKE '%abc'
),则不能使用索引,因为B-tree索引只能从左边开始匹配。如果模式是完全通配符(例如LIKE '%abc%'
),则在某些情况下也可以使用索引,但这取决于具体的模式和列的数据分布。
评论已关闭