首页 文章

Mysql索引Keyname重要性

提问于
浏览
3

我运行这个查询:

SHOW INDEX FROM `tbl_clients`

我回来了:

Table,Non_unique,Key_name,Seq_in_index,Column_name,Collation,Cardinality,Sub_part,Null,Index_type,Comment

我非常确定Key_name仅用于人类识别目的 . 但在我开始创建索引之前,我想确定我是正确的 .

如果我是正确的,我打算将主键命名为PRIMARY,而不是Column_name的相同名称 .

所以,我真的需要有人来验证我,否则就告诉我 .

2 回答

  • 9

    这个名字仅供人类使用,所以不用担心

  • 0

    它将被称为主要的 . 因此,您只能拥有一个主键 . 否则你是对的 - 它只是一个人类可读的名字

    CREATE TABLE `foobar` (
      `pk` int(11) NOT NULL,
      `c` char(10) DEFAULT NULL,
      PRIMARY KEY (`pk`),
      KEY `k_foowoo` (`c`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    
    mysql> show index from foobar;
    +--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table  | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | foobar |          0 | PRIMARY  |            1 | pk          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
    | foobar |          1 | k_foowoo |            1 | c           | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
    +--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    2 rows in set (0.00 sec)
    

相关问题