MySQL 中文全文检索

创建索引(MySQL 5.7.6后全文件索引可用WITH PARSER ngram,针对中文,日文,韩文)

sql 复制代码
ALTER TABLE 表 ADD FULLTEXT 索引名 (`字段`) WITH PARSER ngram;

或者

CREATE FULLTEXT INDEX 索引名 ON 表 (`字段`) WITH PARSER ngram;

查询方法

sql 复制代码
select * from 表 where match(字段名) against('关键词');

注意

  • 只能在类型为CHAR、VARCHAR或者TEXT的字段上创建全文索引。
  • 全文索引只支持InnoDB和MyISAM引擎。
  • MATCH()函数使用的字段名,必须要与创建全文索引时指定的字段名一致。
    多个字段索引,如MATCH (title,body) 创建索引字段名也要是(title,body)。如果要对title或者body字段分别进行查询,就需要在title和body字段上分别创建新的全文索引,然后使用and查询。
  • MATCH()函数使用的字段名只能是同一个表的字段,因为全文索引不能够跨多个表进行检索。
  • 如果要导入大数据集,使用先导入数据再在表上创建全文索引的方式要比先在表上创建全文索引再导入数据的方式快很多,所以全文索引是很影响TPS的。
  • 添加索引的时候注意记得加上 WITH PARSER ngram,不然是不会生效的。
相关推荐
m0_6403093011 小时前
如何用SQL统计每组的平均值同时显示原行_OVER子句
jvm·数据库·python
qq_3721542311 小时前
Redis如何在应用启动时预热缓存数据
jvm·数据库·python
2601_9498153311 小时前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
解救女汉子11 小时前
CSS如何利用CSS变量进行渐变色管理_提升渐变配置的灵活性
jvm·数据库·python
杨云龙UP11 小时前
2000—CentOS Linux 7上部署Oracle 19c(19.3) RAC(RedHat/CentOS 7/8)
linux·运维·服务器·数据库·oracle·centos
m0_6784854511 小时前
怎么导入只包含特定表的SQL文件_正则提取与分离导入
jvm·数据库·python
星晨雪海11 小时前
若依框架原有页面功能进行了点位管理改造之列表查询(4)
数据库·sql·mybatis
历程里程碑11 小时前
MySQL事务深度解析:ACID到MVCC实战+万字长文解析
开发语言·数据结构·数据库·c++·sql·mysql·排序算法
橄榄熊11 小时前
docker MySQL 密码报错,重新修改保留原样的数据
mysql·docker·容器
NineData11 小时前
NineData 将亮相 2026 德国汉诺威工业博览会
数据库·人工智能·数据库管理工具·ninedata·数据库迁移工具·玖章算术