`

MySQL中Index与Key的区别

阅读更多

MySQL中Index与Key的区别

看似有差不多的作用,加了Key的表与建立了Index的表,都可以进行快速的数据查询。
他们之间的区别在于处于不同的层面上。

Key即键值,是关系模型理论中的一部份,比如有主键(Primary Key),外键(Foreign Key)等,用于数据完整性检否与唯一性约束等。

而Index则处于实现层面,比如可以对表个的任意列建立索引,那么当建立索引的列处于SQL语句中的Where条件中时,就可以得到快速的数据定位,从而快速检索。至于Unique Index,则只是属于Index中的一种而已,建立了Unique Index表示此列数据不可重复,猜想MySQL对Unique Index类型的索引可以做进一步特殊优化吧。

于是乎,在设计表的时候,Key只是要处于模型层面的,而当需要进行查询优化,则对相关列建立索引即可。

另外,在MySQL中,对于一个Primary Key的列,MySQL已经自动对其建立了Unique Index,无需重复再在上面建立索引了。

搜索到的一段解释:

Note that “primary” is called PRIMARY KEY not INDEX.
KEY is something on the logical level, describes your table and database design (i.e. enforces referential integrity …)
INDEX is something on the physical level, helps improve access time for table operations.
Behind every PK there is (usually) unique index created (automatically).

引用自:http://forums.macrumors.com/showthread.php?t=334697

分享到:
评论

相关推荐

    mysql中key 、primary key 、unique key 与index区别

    在MySQL数据库中,`key`、`primary key`、`unique key`和`index`都是与数据表结构和查询性能紧密相关的概念。了解它们的区别对于优化数据库操作至关重要。 1. **Key** - Key是一种索引约束,它限制了表中特定列的...

    MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别

    在 MySQL 中 KEY 和 INDEX 是同义。那这个问题就可以简化为 PRIMARY KEY,UNIQUE KEY 和 INDEX 的区别。而这三者也正好是索引的划分,主键索引,唯一索引和普通索引(INDEX)。 使用 INDEX 来加速从数据库中读取数据...

    MySQL里Create Index 能否创建主键 Primary Key

    MySQL里Create Index 能否创建主键 Primary Key? 答案: 不能,必须用 Alter table 创建。 MySQL一个索引列最大允许的有效长度,不是列的所有数据都被索引的MyISAM 是 1000字节 InnoDB 是 767 字节 注意这里是字节。...

    Mysql中key和index的区别点整理

    在MySQL数据库中,`key`和`index`是两个经常被提及的概念,它们在数据库管理和查询优化中扮演着重要角色,但它们之间存在着微妙的区别。本文将深入探讨这两个概念的区别以及它们在MySQL中的实际应用。 首先,让我们...

    presto sql 与mysql sql 对比.pdf

    Presto SQL 与 MySQL SQL 对比 基础 Presto SQL 和 MySQL SQL 都是关系型数据库管理系统,但它们之间存在一些差异。在 Presto SQL 中,字段名和表名使用双引号括起来,而在 MySQL SQL 中,字段名和表名使用反引号...

    MySQL 5.1中文手冊

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    mysql5.1中文手册

    MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和...

    MySQL 5.1官方简体中文参考手册

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    mysql-存储引擎-实验四.docx

    在 MySQL 中,可以使用 FOREIGN KEY 语句来建立外键关系。 7. 对学生表中学号执行增、删、改操作时,验证 RESTRICT、CASCADE、SET NULL、NO ACTION 相应规则。 在实验中,我们对学生表中学号执行了增、删、改操作...

    简单分析MySQL中的primary key功能

    MySQL中的Primary Key是一种重要的数据库约束,它用于唯一标识表中的每一行数据,并且不允许有重复值。在数据库设计中,合理地使用Primary Key对于优化查询性能、保证数据完整性和提高数据库系统的整体效率至关重要...

    mysql中创建各种索引的语句整理.pdf

    Mysql中创建各种索引的语句整理 代码 添加PRIMARY KEY(主键索引) 添加UNIQUE(唯一索引) 添加INDEX(普通索引) 添加FULLTEXT(全文索引) 添加多列索引 ) mysql>ALTER TABLE `...

    MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法

    在MySQL中,当你尝试创建一个索引,特别是唯一索引(Unique Index)时,可能会遇到错误“Specified key was too long; max key length is 1000 bytes”。这个错误意味着你试图创建的索引键(key)超过了MySQL允许的...

    MySQL 是怎样运行的:从根儿上理解 MySQL(下).pdf

    MySQL 查询优化的百科全书 —— Explain 详解 MySQL 是怎样运行的?从根儿上理解 MySQL 的查询优化是一件复杂的事情,但了解 Explain 语句...同时,我们也需要注意 Explain 语句输出的信息与实际执行计划之间的区别。

    MYSQL中文手册

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG...

    Mysql数据库设计.pdf

    alter talbe 表名 action add 列名 add primary key alter 列名 set default drop 列名 drop primary key drop index index_name rename as 新表名 insert into 表名(id,name,...) valuse(1,liqingbo); update 表名...

    mysql第三阶段

    4. 添加唯一约束:ALTER TABLE `tb_name` ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type] (index_col_name,...); 5. 添加外键约束:ALTER TABLE `tb_name` ADD [CONSTRAINT [symbol]] ...

Global site tag (gtag.js) - Google Analytics