正如标题所述,什么是全文索引?我应该在什么时候使用它?

推荐答案

在数据库中,当查找where子句中定义的内容时,索引通常用于提高性能.然而,当涉及到过滤某些文本时,例如使用WHERE TextColumn LIKE '%searchstring%'之类的搜索,则搜索速度会很慢,因为常规数据库索引的工作方式是针对某个列的"全部内容"而不是其中的一部分进行优化的.具体来说,包含通配符的同类搜索不能使用任何类型的索引.

正如在下面的 comments 中提到的,MySQL需要MATCH () ... AGAINST语法来在全文索引中搜索;顺便说一句,这取决于数据库供应商.在MS SQL中,您可以使用CONTAINS,所以当您计划支持其他数据库时,请记住这一点.

全文索引更适合于常规文本,因为它们针对这些类型的列进行了优化.非常简单:他们将文本拆分为单词,并对单词而不是整个文本编制索引.在搜索特定单词时,这对于文本搜索来说要快得多.

Mysql相关问答推荐

更新MySQL表中子记录的序号

MySQL:一个查询中的SELECT语句,用于从一个表中检索所有数据,并仅从另一个表中检索一个数据

如何跨多个产品查找相同时间范围的数据集

MySQL逻辑全部

按唯一列排序,但保持匹配的列在一起

计算同一个表中的两列,然后将两者都算作总数

是否可以使用以EXPLAIN EXTENDED ...开头的 SQL 语句修改数据?

基于关系的每个实体有一个真值和多个假值

如何根据 R 中的价格范围将数据从一列复制到新列?

MYSQL REGEXP_REPLACE 在数字之后

使用 MySQL 在树中查找 Leaf

避免重复进入mysql数据库的最佳方法

MySql,将日期和时间列组合成时间戳

从终端访问 MAMP 的 MySQL

通过数据库级​​别本身的查询反序列化

如何将时刻 JS 时间插入 MySQL

外键可以引用非唯一索引吗?

MySQL术语约束与外键的区别?

MySQL DAYOFWEEK() - 我的一周从星期一开始

为什么 GRANT 在 MySQL 中不起作用?