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_68450198几秒前
SQL嵌套查询在ETL流程的应用_数据清洗逻辑
jvm·数据库·python
djjdjdjdjjdj2 分钟前
c++ circle元编程如何使用
jvm·数据库·python
老毛肚4 分钟前
Redis高级
java·数据库·redis
2401_871696524 分钟前
如何解决Data Guard主库ORA-16038日志无法归档_强制日志传输报错排查
jvm·数据库·python
djjdjdjdjjdj5 分钟前
Python Selenium怎么定位元素_By.XPATH与By.CSS_SELECTOR操作DOM节点
jvm·数据库·python
识君啊8 分钟前
38 个 MySQL 索引核心问题:原理、失效场景与优化实战
数据库·mysql
爱莉希雅&&&13 分钟前
MySQL MGR 组复制 完整笔记
linux·数据库·笔记·mysql·mgr·数据库同步
m0_4939345319 分钟前
C#怎么实现EF Core全局查询过滤 C#如何用HasQueryFilter配置全局过滤条件自动排除已删除数据【数据库】
jvm·数据库·python
weixin_5689960624 分钟前
处理大体积DBF文件导入卡顿怎么办_性能优化与分批操作
jvm·数据库·python
m0_6403093031 分钟前
如何处理SQL查询中的逻辑重叠:AND OR嵌套优先级
jvm·数据库·python