Mysql中键和索引有什么区别?

分类:编程技术 时间:2024-02-20 15:23 浏览:0 评论:0
0
本文与大家分享Mysql中key和index的区别。小编觉得还是比较实用的,所以分享给大家学习一下。希望您读完本文后有所收获。话不多说,下面就和小编一起来看看吧。

我们先看一下代码:

ALTER TABLE reportblockdetail ADD KEY taskcode(taskcode)ALTER TABLE reportblockdetail DROP KEY taskcode

嗯,这确实是一个令人困惑的地方。

我们在使用MySQL时可能根本不会关注这个问题,因为大多数情况下它们表现出类似的效果,但它们仍然不能划等号(至少在理论上)

p>< p>索引(index)和约束(key)的区别主要在于它们的出发点不同。索引(index)负责维护表的查找和操作速度,约束(key)负责维护表的完整性。

如果你有这样的困惑,很可能是由于MySQL中的一个奇怪现象:

MySQL中的索引是约束索引(即创建索引会自动创建约束)

而在MySQL中创建约束会自动带有索引。

这很奇怪。它们是两个不同的事物,但在创建时却相互依存。你为什么这么做?因为原因是:

MySQL中的约束效果是通过索引来实现的。 MySQL数据库通过唯一索引判断当前列是否唯一。

最后总结一下:

约束包括主键约束、唯一约束、外键约束、非空约束、检查约束(检查约束根本不能用MySQL中是可以正常建立的)等。

索引包括普通索引、主键索引、唯一索引、联合索引、全文索引等。

两者都是可以实现的实施创建表时。表创建完成后,通过alter语句实现创建和删除。具体说法直接根据百度以上两点进行。我在MySQL5.5和innoDB存储引擎上测试过它们。向下。

理论上来说,MySQL的键和索引是不能划等号的。它们不是同一个东西,但是在实际使用中,它们之间基本上没有区别。

内容扩展:

key和主键的区别

CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment、user_name varchar(100) 默认 NULL、operation_time datetime 默认 NULL、logrecord_operation varchar(100) 默认 NULL、PRIMARY KEY (logrecord_id)、KEY wh_logrecord_user_name (user_name) )

< strong>KEY和INDEX的区别

译注:这部分我还是一头雾水。
KEY通常是INDEX的同义词。 PRIMARY KEY 也可以指定为 KEY,前提是 keyword 属性 PRIMARY KEY 在列定义中给出。这样做是为了与其他数据库系统兼容。 PRIMARY KEY 是唯一的 KEY。此时,所有键列必须定义为NOT NULL。如果这些列没有显式定义为 NOT NULL,MySQL 应隐式定义这些列。一张表只有一个主键。

MySQL中Index和Key的区别

Key是键值,它是关系模型理论的一部分,例如主键和外键。等等,用于数据完整性检查和唯一性约束等。索引处于实现层面。例如,您可以为表的任何列建立索引。那么当索引列在SQL语句中的Where条件中时,就可以快速定位数据,从而快速检索。至于唯一索引,它只是索引的一种。唯一索引的建立意味着该列中的数据不能重复。我猜MySQL还可以进一步优化Unique Index类型指数。

所以,在设计表时,Key只需要在模型级别,当需要查询优化时,可以在相关列上创建索引。

另外,在MySQL中,对于一个主键列,MySQL已经自动为其建立了唯一索引,所以不需要在其上重复创建索引。

以上就是Mysql中key和index的区别。小编相信有些知识点在我们日常工作中可能会看到或者用到。希望您能从本文中了解更多信息。更多详情请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Mysql中键和索引有什么区别?

用户评论