MST

星途 面试题库

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

请阐述MySQL全文索引适合在哪些场景下使用,并详细说明如何在MySQL数据库中创建全文索引,包括数据表结构示例及相应的SQL语句。
47.5万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

1. 全文索引适用场景

  • 文本搜索:当需要在长文本字段(如文章内容、产品描述等)中进行复杂的关键字搜索时,全文索引非常有效。例如新闻网站搜索文章、电商平台搜索商品描述。它不仅能匹配完整单词,还能进行更智能的语义搜索,比如支持近义词、模糊匹配等,而普通索引只能精确匹配整个字段。
  • 多词搜索:在处理多个关键字同时搜索的场景下,全文索引性能远优于普通索引。例如用户输入多个关键词搜索商品,全文索引能快速定位包含这些关键词的记录。

2. 创建全文索引步骤及示例

  • 数据表结构示例:以创建一个存储文章信息的数据表为例。
CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT
);
  • 创建全文索引的SQL语句
    • 方式一:创建表时直接添加全文索引
CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT,
    FULLTEXT(title, content)
);
- **方式二:在已存在的表上添加全文索引**
ALTER TABLE articles ADD FULLTEXT(title, content);

需要注意的是,MySQL中全文索引只适用于MyISAM和InnoDB存储引擎,并且在使用全文索引进行搜索时,需使用 MATCH AGAINST 语法,而不是普通的 LIKE 操作符。例如:

SELECT * FROM articles WHERE MATCH(title, content) AGAINST('关键词' IN NATURAL LANGUAGE MODE);