【问题标题】:What is the difference between FULLTEXT and FULLTEXT KEY/INDEX?FULLTEXT 和 FULLTEXT KEY/INDEX 有什么区别?
【发布时间】:2015-05-11 20:12:57
【问题描述】:

MySQL 文档提供了这种创建 FULLTEXT 索引的格式:

| {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) [索引选项]

要使用 MySQL 实现全文搜索,您可以通过以下方式创建索引:

CREATE TABLE posts (
  id int(4) NOT NULL AUTO_INCREMENT,
  title varchar(255) NOT NULL,
  content text,
  PRIMARY KEY (id),
  FULLTEXT (title, content)
  ) ENGINE=MyISAM;

CREATE TABLE posts (
  id int(4) NOT NULL AUTO_INCREMENT,
  title varchar(255) NOT NULL,
  content text,
  PRIMARY KEY (id),
  FULLTEXT KEY my_index_name (title, content)
  ) ENGINE=MyISAM;

my_index_name 是用户定义的名称,而不是字段名称。

  • 它们有什么区别?
  • 对系统本身和开发者有什么后果吗?

我在文档中找不到任何线索:

【问题讨论】:

  • 如果您认为您的问题已经得到解答,请接受其中的一个。

标签: mysql full-text-indexing


【解决方案1】:

省略索引名称

如果你添加一个索引/键 MySQL 将存储指定列(列集)的附加信息以加快搜索速度。

在您的第一个示例中,MySQL 将生成一个索引并为其命名 my_index_name。如果省略名称,MySQL 会为您选择一个。我找不到有关如何选择名称的文档,但根据我的经验,第一列的名称通常被用作索引名称。

对于这部分讨论,fulltext 选项无关紧要。它只是定义了您正在创建的索引/键的类型:

您可以创建特殊的 FULLTEXT 索引,用于全文搜索。

省略 index/key 关键字

fulltext就足够了:

| {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) [index_option] ...

但使用fulltext index 表单可能是个好主意,因为会提醒读者索引。

indexkey 是同义词

注意indexkey之间没有区别(见create table):

KEY 通常是 INDEX 的同义词。当在列定义中给出键属性 PRIMARY KEY 时,也可以仅将其指定为 KEY。这是为了与其他数据库系统兼容而实现的。

示例

use test;

create table u (
    id int primary key,
    a varchar(10),
    b varchar(10),
    fulltext index (a, b)
);

show index from u;

将打印(我从这个输出中省略了主索引以及一些 附加列):

table key_name  seq_in_index  column_name
u     a         1             a
u     a         2             b

如果你想删除它,你需要索引名称:

alter table u
  drop index a;

参考文献

【讨论】:

  • 谢谢。有没有办法让开发者与之交互?
【解决方案2】:

没有区别,如果你使用第一种语法,那么mysql会选择索引的名称,并且在大多数情况下column name,因为你有2个FULLTEXT (title, content)它最有可能选择索引名称为@ 987654323@

在第二种情况下,您明确提供了一个名称。

您可以在创建表后运行命令show create table posts,查看两种情况下的索引名称。

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 2023-03-16
    • 2010-11-26
    • 2013-08-10
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多