行“KEY`idx_pid`(`person_id`)是什么意思?

时间:2013-10-21 18:38:34

标签: mysql

我是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_pidperson_id)”是什么意思?

3 个答案:

答案 0 :(得分:1)

MySQL中的

KEYINDEX的别名;你可以在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。对于这里的关键字来说,这是一个不幸的选择,因为它与关键数据库意义上的“关键字1”无关。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这会在idx_pid列上添加一个名为person_id的索引,可以使用persond_id作为条件来加速查询。

您可以阅读MySQL indexes here