• Mysql中的key和index的区别


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

    嗯这确实是比较容易混淆的地方。
    在我们使用MySQL中可能压根不会注意这个问题,因为大多数情况下他们展示出来的效果都差不多,但是还是不能将他们划等号(至少理论上是这样)
    索引(index)和约束(key)的区别主要在于二者的出发点不同,索引(index)负责维护表的查找和操作速度,约束(key)负责维护表的完整性。
    而有这个困惑的话,很可能是由于MySQL中有一个奇怪现象:

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

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

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

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

    最后总结下:

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

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

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

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

  • 相关阅读:
    CSS优先级及继承
    group by 与 order by
    软件开发升级指南(转)
    安装DELL服务器,安装Windows 2003 sp2 问题
    SQL SERVER 2005数据库总结
    C#操作INI文件(调用WindowsAPI函数:WritePrivateProfileString,GetPrivateProfileString)
    对RBS理解与使用
    WSS和MOSS的区别
    关于.net winform ComboBox数据绑定显示问题
    OpenNETCF.Desktop.Communication.DLL程序集的使用
  • 原文地址:https://www.cnblogs.com/xiaohanlin/p/12455138.html
Copyright © 2020-2023  润新知