我是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
)”是什么意思?
答案 0 :(得分:1)
KEY
是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
。对于这里的关键字来说,这是一个不幸的选择,因为它与关键数据库意义上的“关键字1”无关。
¹在关系数据库理论中,密钥是一组唯一标识行的列。
答案 1 :(得分:0)
这意味着您要在person_info.person_id列上创建名为“idx_pid”的索引。
答案 2 :(得分:0)
这会在idx_pid
列上添加一个名为person_id
的索引,可以使用persond_id
作为条件来加速查询。
您可以阅读MySQL indexes here。