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,不然是不会生效的。
相关推荐
JavaEdge.1 分钟前
榨干 CPU 性能:通过绑核将 Redis 尾延迟减半!
数据库·redis·缓存
YDS8297 分钟前
Redis入门 —— 基本数据类型和Spring Data Redis
数据库·redis·spring
一个儒雅随和的男子7 分钟前
Redis大Key调优指针
数据库·redis·缓存
IT 小阿姨(数据库)8 分钟前
PostgreSQL pg_stat_bgwriter 视图各个字段详解
linux·数据库·sql·postgresql·centos
王卫东2 小时前
深入HBase:原理剖析与优化实战
大数据·数据库·hbase
呆呆小金人2 小时前
SQL键类型详解:超键到外键全解析
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
Doro再努力2 小时前
Neo4j图数据库:简述增删改查
数据库·neo4j
dlhto3 小时前
Oracle Linux 9 的 MySQL 8.0 完整安装与远程连接配置
linux·mysql·oracle
送秋三十五4 小时前
5分钟读懂MySQL+Redis双写一致性实现流程
数据库·redis·mysql
bbmmqq4 小时前
根据角色ID获取完整角色信息(异步)
数据库·spring·oracle