Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中的主要索引是什么_Mysql_Sql_Mysql Workbench - Fatal编程技术网

mysql中的主要索引是什么

mysql中的主要索引是什么,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我刚刚学习了如何在mysql中创建索引,并在连接mysql 8.0实例的mysql workbench中执行了这样一个查询: 使用测试; 创建表idx( id int不为null唯一, 姓名char(5), 主键(id), 密钥(名称) ); 显示来自idx的索引; 结果是: # Table, Non_unique, Key_name, Seq_in_index, Column_name, Collation, Cardinality, Sub_part, Packed, Null, Inde

我刚刚学习了如何在mysql中创建索引,并在连接mysql 8.0实例的mysql workbench中执行了这样一个查询:

使用测试;
创建表idx(
id int不为null唯一,
姓名char(5),
主键(id),
密钥(名称)
);
显示来自idx的索引;
结果是:

# Table, Non_unique, Key_name, Seq_in_index, Column_name, Collation, Cardinality, Sub_part, Packed, Null, Index_type, Comment, Index_comment, Visible, Expression
'idx', '0', 'PRIMARY', '1', 'id', 'A', '0', NULL, NULL, '', 'BTREE', '', '', 'YES', NULL
'idx', '0', 'id', '1', 'id', 'A', '0', NULL, NULL, '', 'BTREE', '', '', 'YES', NULL
'idx', '1', 'name', '1', 'name', 'A', '0', NULL, NULL, 'YES', 'BTREE', '', '', 'YES', NULL

有两个索引key_name=PRIMARAY和key_name=“id”,这让我感到困惑,因为
id
是主键。它们之间有什么区别?

id索引来自id列的
unique
选项。
PRIMARY
索引来自
主键(id)


由于主键总是唯一的,因此不需要
unique
选项,这样它就不会创建额外的索引。

id索引来自
id
列的
unique
选项。
PRIMARY
索引来自
主键(id)


由于主键总是唯一的,您不需要
unique
选项,这样它就不会创建额外的索引。

索引可以通过表的多个列来完成,在B+树中,有一个根键和许多子节点。这意味着当您在索引中搜索某个内容时,首先使用主键进行分类。 假设您有一百万个数据,索引的主键是名称顺序是ASC字母顺序。若你们要找的是年龄=15,名字=John,索引的主键是name。db引擎将执行以下操作: 检查“John”开始索引。然后在所有的“约翰”中找出年龄=15岁

如果命名更多标识符,则应使用名称作为主键


检查和

索引可以通过表的多列来完成,在B+树中有一个根键和许多子节点。这意味着当您在索引中搜索某个内容时,首先使用主键进行分类。 假设您有一百万个数据,索引的主键是名称顺序是ASC字母顺序。若你们要找的是年龄=15,名字=John,索引的主键是name。db引擎将执行以下操作: 检查“John”开始索引。然后在所有的“约翰”中找出年龄=15岁

如果命名更多标识符,则应使用名称作为主键

检查和