• ADADADADAD

    key与index在Mysql中有什么区别[ mysql数据库 ]

    mysql数据库 时间:2024-11-29 09:50:33

    作者:文/会员上传

    简介:

    我们先来看下代码:ALTERTABLEreportblockdetailADDKEYtaskcode(taskcode)ALTERTABLEreportblockdetailDROPKEYtaskcode嗯这确实是比较容易混淆的地方。在我们使用MySQL中可能

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    我们先来看下代码:

    ALTERTABLEreportblockdetailADDKEYtaskcode(taskcode)ALTERTABLEreportblockdetailDROPKEYtaskcode

    嗯这确实是比较容易混淆的地方。

    在我们使用MySQL中可能压根不会注意这个问题,因为大多数情况下他们展示出来的效果都差不多,但是还是不能将他们划等号(至少理论上是这样)

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

    而有这个困惑的话,很可能是由于MySQL中有一个奇怪现象:

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

      并且MySQL中创建约束也会自动附带索引。

      很奇怪吧,两者不同的东西但是创建的时候又会附带给对方,为什么这样做呢?因为原因是:

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

      最后总结下:

        约束有主键约束,唯一约束,外键约束,非空约束,检查约束(在MySQL中压根无法使用检查约束,但可以正常建立),等

        索引有普通索引,主键索引,唯一索引,联合索引,全文索引,等。

        两者的实现都可以通过建表时实现,建表后的话通过alter语句来实现建立与删除,具体语句直接百度以上二点我经过测试在MySQL5.5 ,innoDB存储引擎下。

        在理论上是不能将MySQL的key和index划等号的,他们不是一回事,但在实际使用中,他们基本没有区别。

        内容扩展:

        key与primary key区别

        CREATETABLEwh_logrecord(logrecord_idint(11)NOTNULLauto_increment,user_namevarchar(100)defaultNULL,operation_timedatetimedefaultNULL,logrecord_operationvarchar(100)defaultNULL,PRIMARYKEY(logrecord_id),KEYwh_logrecord_user_name(user_name))

        KEY与INDEX区别

        批注:这部分我仍云里雾里。
        KEY通常是INDEX同义词。如果关键字属性PRIMARY KEY在列定义中已给定,则PRIMARY KEY也可以只指定为KEY。这么做的目的是与其它数据库系统兼容。 PRIMARY KEY是一个唯一KEY,此时,所有的关键字列必须定义为NOT NULL。如果这些列没有被明确地定义为NOT NULL,MySQL应隐含地定义这些列。一个表只有一个PRIMARY KEY。

        MySQL 中Index 与Key 的区别

        Key即键值,是关系模型理论中的一部份,比如有主键(Primary Key),外键(Foreign Key)等,用于数据完整性检否与唯一性约束等。而Index则处于实现层面,比如可以对表个的任意列建立索引,那么当建立索引的列处于SQL语句中的Where条件中时,就可以得到快速的数据定位,从而快速检索。至于Unique Index,则只是属于Index中的一种而已,建立了Unique Index表示此列数据不可重复,猜想MySQL对Unique Index类型的索引可以做进一步特殊优化吧。

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

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

    key与index在Mysql中有什么区别.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlkeyindex