CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; INSERT INTO `users` (`name`, `age`) VALUES ('Tom', 18), ('Jerry', 20), ('Jack', 30), ('Lily', 22), ('Lucy', 24), ('Anna', 26), ('Bob', 28), ('Billy', 32), ('Bill', 34), ('Mike', 36), ('Mark', 38), ('Mary', 40);
以上是创建一个简单的users表,其中包含三个字段,分别为id、name、age。大家在name字段上创建一个LIKE %%索引,语句如下:
CREATE INDEX name_like ON users (name(255)) USING BTREE;
上述语句创建了一个索引,名为name_like,对name字段创建了长度为255个字符的BTREE索引。
使用该索引可以提高模糊查询的速度,例如以下语句:
SELECT * FROM users WHERE name LIKE '%i%';
该语句查询了name字段中所有包含字母i的记录,结果如下:
+----+-------+-----+ | id, name , age, +----+-------+-----+ | 8, Billy, 32, | 9, Bill , 34, | 11, Mike , 36, +----+-------+-----+
可以看到,使用LIKE %%索引可以快速地完成模糊查询。但是需要注意,该索引只适合在大数据量下进行查询,如果数据量较小,则不必创建此索引。
在实际开发中,需要根据具体业务需求来选择索引方式,以达到最优的查询效果。