1

我是 mysql 新手,正在使用在线服务器(MYSQL 版本 5.1.69),我有下表

CREATE TABLE `person_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `person_id` int(11) NOT NULL,
  `info_type_id` int(11) NOT NULL,
  `info` text NOT NULL,
  `note` text,
  PRIMARY KEY (`id`),
  KEY `idx_pid` (`person_id`),
  KEY `person_info_info_type_id_exists` (`info_type_id`)
)

有人可以向我解释一下“KEY idx_pid( person_id)”是做什么的吗?

4

3 回答 3

4

KEY,在 MySQL 中,是 ; 的别名INDEX。您可以在文档中的伪语法中看到这一点CREATE TABLE

[INDEX|KEY] [index_name] (index_col_name,...)

它表示表上索引的定义,仅此而已。这里,

KEY `idx_pid` (`person_id`),

…在“person_id”列上创建一个名为“idx_pid”的索引。这也可以写成,

INDEX `idx_pid` (`person_id`),

但是,MySQL 的SHOW CREATE TABLE命令(和其他命令)会更喜欢KEY. 这里的关键字是一个不幸的选择,因为它与关系数据库中的“key¹”无关。

¹在关系数据库理论中,键是唯一标识行的一组列。

于 2013-10-21T19:59:54.767 回答
0

这意味着您正在 person_info.person_id 列上创建一个名为“idx_pid”的索引。

于 2013-10-21T18:40:02.280 回答
0

idx_pid这会添加一个在列上命名的索引,以person_id加快使用persond_idas 条件的查询。

您可以在此处阅读MySQL 索引

于 2013-10-21T18:40:15.333 回答