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,不然是不会生效的。
相关推荐
七牛开发者26 分钟前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
何以解忧,唯有..2 小时前
数据库索引失效的常见情况与优化策略
数据库·sql·oracle
这个DBA有点耶3 小时前
分布式数据库到底该不该上?从判断标准到架构选型的实战思考
数据库·架构·dba
01_ice4 小时前
MySQL库和表的操作
数据库·mysql
oradh4 小时前
Oracle UNDO表空间管理维护总结
数据库·oracle·undo表空间·undo表空间管理·undo表空间管理维护
布莱克6054 小时前
数据库索引分类:数据结构、物理存储与逻辑角度详解
数据结构·数据库
SelectDB4 小时前
DeepSeek Harness 接入 Litefuse:完善 Agent 可观测与评估能力
数据库
这个DBA有点耶5 小时前
从库延迟的“二次放大”效应:一次大事务,拖垮整个读写分离
数据库·mysql·架构
LearnYard5 小时前
自然语言驱动的数据图表生成:几款工具功能对比实践
数据库·百度·powerpoint
一个有温度的技术博主6 小时前
MySQL 三大日志协同机制:redo log、undo log 与 binlog 的联合运作
数据库·mysql·oracle