文章目录
- 创建索引
- 使用索引
- 总结
创建索引
之前未尝试过使用MySQL8的全文索引,今天试一试看看什么效果,否则跟不上时代了都。
创建索引非常简单,写句SQL就行。
create table goods(
id integer primary key auto_increment,
name varchar(255) comment '名称',
description text comment '描述',
FULLTEXT idx(description)
) comment '商品';
全文索引一建,一系列的索引表就会自动创建,这里可以按MySQL官方的做法去查一查:
select TABLE_ID, NAME, SPACE from information_schema.INNODB_TABLES where NAME like 'study/%';
使用索引
现在开始,可以插入数据试试索引的使用了。
INSERT INTO study.goods (name, description) VALUES ('兰蔻塑颜紧致百肽面霜', '兰蔻塑颜紧致百肽面霜75ml保湿护肤品套装 礼盒生日礼物送女友送妈妈')
全文索引的使用不是LIKE关键字,而是MATCH关键字,而且拆分规则是空格键拆分。比如我下面的查询语句是可以查到内容的:
select * from goods where match(description) against('礼盒生日礼物送女友送妈妈');
但是如果我使用生日礼物就查询不到内容了,如:
select * from goods where match(description) against('礼盒生日礼物');
这样的查询结果就是空的了。
所以MySQL8的全文索引对中文的支持并不太好。
总结
MySQL8的全文索引,英文程序用用还是可以的,但是中文项目就算了吧,不能自己定义分词器,只能配置个停用词stopword,反正我在项目中是不会使用的。