MST

星途 面试题库

面试题:MySQL全文索引的适用场景及基本创建步骤

请阐述MySQL全文索引在哪些场景下使用较为合适,并详细说明在InnoDB存储引擎表中创建全文索引的基本SQL步骤。
15.2万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

适用场景

  1. 文本搜索场景:当需要在大量文本数据中进行模糊搜索,例如文章、评论、产品描述等字段。比如新闻网站搜索文章内容,电商平台搜索商品描述,传统的LIKE查询效率极低,全文索引能大幅提升搜索效率。
  2. 多词匹配场景:希望实现多个关键词同时匹配,并且能根据关键词的相关性对结果进行排序。例如用户输入多个关键词搜索书籍,全文索引可以按照与关键词的相关程度对书籍进行排序展示。
  3. 语义搜索场景:对于一些需要理解语义的搜索,如自然语言处理相关的搜索需求,全文索引结合特定的语言解析器,能更好地理解用户意图,提供更精准的搜索结果。

创建全文索引基本SQL步骤

  1. 创建表时添加全文索引
CREATE TABLE your_table_name (
    id INT PRIMARY KEY AUTO_INCREMENT,
    content TEXT,
    FULLTEXT(content)
) ENGINE=InnoDB;

在上述示例中,your_table_name是表名,content是要建立全文索引的字段,使用FULLTEXT关键字在创建表时直接为content字段添加全文索引。 2. 为已存在的表添加全文索引

-- 方式一:添加单个全文索引
ALTER TABLE your_table_name ADD FULLTEXT(column_name);
-- 例如
ALTER TABLE your_table_name ADD FULLTEXT(content);

-- 方式二:添加包含多个字段的全文索引
ALTER TABLE your_table_name ADD FULLTEXT(column1, column2, column3);
-- 例如
ALTER TABLE your_table_name ADD FULLTEXT(title, content, description);

在上述示例中,your_table_name是已存在的表名,column_namecolumn1column2column3等是具体要包含在全文索引中的字段名。