2013-10-21 22 views
0

我新的MySQL和我的工作在线服务器上(MySQL版本69年1月5日),我有如下表“KEY`idx_pid`(`person_id`),”是什么意思?

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)”呢?

+0

所以,如果有多个表创建KEY'idx_pid'('person_id')这是否意味着idx_pid作为一种伪造密钥? – Irtza

回答

1

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。这是关键字在这里的不幸选择,因为它与关系数据库意义上的“关键¹”无关。

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

0

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

0

这在person_id列中添加了一个名为idx_pid的索引,该索引使用persond_id作为条件加快查询速度。

你可以在MySQL indexes here上阅读。