MySQL8 全文索引

文章目录

创建索引

  之前未尝试过使用MySQL8的全文索引,今天试一试看看什么效果,否则跟不上时代了都。

  创建索引非常简单,写句SQL就行。

sql 复制代码
create table goods(
    id integer primary key auto_increment,
    name varchar(255) comment '名称',
    description text comment '描述',
    FULLTEXT idx(description)
) comment '商品';

  全文索引一建,一系列的索引表就会自动创建,这里可以按MySQL官方的做法去查一查:

sql 复制代码
select TABLE_ID, NAME, SPACE from information_schema.INNODB_TABLES where NAME like 'study/%';

使用索引

  现在开始,可以插入数据试试索引的使用了。

sql 复制代码
INSERT INTO study.goods (name, description) VALUES ('兰蔻塑颜紧致百肽面霜', '兰蔻塑颜紧致百肽面霜75ml保湿护肤品套装 礼盒生日礼物送女友送妈妈')

  全文索引的使用不是LIKE关键字,而是MATCH关键字,而且拆分规则是空格键拆分。比如我下面的查询语句是可以查到内容的:

sql 复制代码
select * from goods where match(description) against('礼盒生日礼物送女友送妈妈');

  但是如果我使用生日礼物就查询不到内容了,如:

sql 复制代码
select * from goods where match(description) against('礼盒生日礼物');

  这样的查询结果就是空的了。

  所以MySQL8的全文索引对中文的支持并不太好。

总结

  MySQL8的全文索引,英文程序用用还是可以的,但是中文项目就算了吧,不能自己定义分词器,只能配置个停用词stopword,反正我在项目中是不会使用的。

相关推荐
炘爚21 小时前
Phase 5:MySQL 连接池
数据库·mysql
潮起鲸落入海21 小时前
mysql主从复制读写分离
mysql
宁小法21 小时前
mysql - SQLSTATE[23000]报错类型
mysql·23000·报错类型
j_xxx404_21 小时前
MySQL库操作硬核解析:字符集、校验规则、大小写比较、备份恢复与连接排查
运维·服务器·数据库·人工智能·mysql·ai·oracle
minji...1 天前
MySQL数据库 (五) MySQL表的约束(上),非空约束,默认值约束,零填充约束,主键约束,符合主键
数据库·mysql·表的约束·主键约束·非空约束·复合主键·零填充约束
列星随旋1 天前
MySQL面经整理
数据库·mysql
是一个Bug1 天前
MySQL 核心知识梳理:从底层原理到实战优化
mysql
minji...1 天前
MySQL数据库 (四) MySQL的数据类型,tinyint,float,decimal,枚举enum和集合set
数据库·mysql·tinyint·enum·decimal·varchar·bit
todoitbo1 天前
从 MySQL 到 KingbaseES:Database、Schema、User 一次讲透
数据库·mysql·国产数据库·kingbasees
千云1 天前
100w大表0停机回滚:我们为什么放弃Undo Log,选择表名切换?
数据库·后端·mysql