面试题答案
一键面试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);