什么';在MySQL中使用索引和键有什么区别?

什么';在MySQL中使用索引和键有什么区别?,mysql,indexing,key,Mysql,Indexing,Key,我知道如何在下面的代码中使用索引。我知道如何使用外键和主键 然而,我发现一个代码使用键而不是索引,如下所示 ... KEY order_date (order_date) ... 我在MySQL官方页面上找不到任何解释。谁能告诉我键和索引的区别是什么 我看到的唯一区别是,当我使用键…时,我需要重复这个单词,例如 关键订单日期(订单日期)没有区别。它们是同义词 发件人: 键通常是索引的同义词。键属性主键可以 当在列定义中给出时,也可以指定为仅键。这是 为与其他数据库系统兼容而实现 在“创建

我知道如何在下面的代码中使用索引。我知道如何使用外键和主键


然而,我发现一个代码使用键而不是索引,如下所示

...
KEY order_date (order_date) 
...

我在MySQL官方页面上找不到任何解释。谁能告诉我键和索引的区别是什么

我看到的唯一区别是,当我使用
键…
时,我需要重复这个单词,例如

关键订单日期(订单日期)

没有区别。它们是同义词

发件人:


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


在“创建表”文档中,它被称为索引的同义词:

@Nos已经引用了该节并将帮助链接到5.1

主键
为您创建主键和索引,
仅创建索引。

键是在表中扮演非常特定角色的特殊字段,键的类型决定了它在表中的用途

索引是RDBMS(数据库管理系统)提供的用于改进数据处理的结构。索引与逻辑数据库结构无关

所以

键是用于标识表中记录的逻辑结构,索引是用于优化数据处理的物理结构

资料来源:为凡人设计的数据库

作者:迈克尔·埃尔南德斯这里有一个关于“差异”的例子:

“MySQL要求每个键也被索引,这是一个实现 特定于MySQL以提高性能的详细信息。”


键是我们在其上构建索引的一组列或表达式

  • 虽然索引是存储在数据库中的结构,但键严格来说是一个逻辑概念

  • 索引帮助我们快速访问记录,而键只是唯一地标识记录

  • 每个表都必须有一个键,但索引不是必需的


  • 检查

    在最新版本的SQLYG中查看表信息时,当我使用
    索引键名(列名)
    创建表时,它会显示
    键名(列名)
    。它是同义词这一事实很好地解释了这一点。“键属性
    主键
    也可以在列定义中指定为
    。”这意味着什么?问题是关于在MySQL中使用SQL标识符键和索引。不是键和索引之间的区别。@Josh J即使最初的动机是询问标识符,用搜索引擎搜索键和索引的区别也会产生这个主题。将问题的标题改得更具体可能是有意义的。另一方面,在mysql中编写关于键和索引之间的差异的问题可能会被标记为重复项。=>我觉得这些补充性的答案非常有用。无论如何,“真实”的答案会得到最高的分数。所以我看不出对补充答案投反对票的原因。为了说明这一点,我在问题中使用了大写的INDEX和KEY。问题是关于在MySQL中使用SQL标识符KEY和INDEX。不是键和索引之间的区别,问题是关于SQL标识符键和索引在MySQL中的使用。不是键和索引之间的区别。我用搜索引擎搜索了差异,这是第一个结果。我认为没有必要提出额外的问题。但是,如果你愿意的话,请随意这样做。
    ...
    KEY order_date (order_date) 
    ...