• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql下普通索引和唯一索引的效率对比

mysql下普通索引和唯一索引的效率对比

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql 唯一索引,mysql删除唯一索引,mysql创建唯一索引,mysql 联合唯一索引,mysql添加唯一索引等相关知识,希望本文的分享对您有所帮助

今天在我的虚拟机中布置了环境,测试抓图如下:

抓的这几个都是第一次执行的,刷了几次后,取平均值,效率大致相同,而且如果在一个列上同时建唯一索引和普通索引的话,mysql会自动选择唯一索引。

谷歌一下:

唯一索引和普通索引使用的结构都是B-tree,执行时间复杂度都是O(log n)。

补充下概念:

1、普通索引

 

  普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。

2、唯一索引

  普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。

如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

注:

终于找到同事说执行效率不一样的原因了,他在普通索引上创建的是前缀索引,只取了前16个字节,而唯一索引使用的全字节 :)

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL批量插入遇上唯一索引避免方法
  • mysql下普通索引和唯一索引的效率对比

相关文章

  • 2018-12-05MySQL主从复制数据一致性校验和修复方法及自动化实现
  • 2018-12-05laravel框架中常用目录路径详解
  • 2017-05-11mysql 关键词相关度排序方法详细示例分析
  • 2018-12-05MySQL高级十七——MySQL账号权限赋予
  • 2017-05-11mysql提示[Warning] Invalid (old?) table or database name问题的解决方法
  • 2017-05-11MySQL关闭过程详解和安全关闭MySQL的方法
  • 2018-12-05SQLServer 2005 列所有存储过程的语句
  • 2018-12-05Windows10安装MySQL5.7及忘记root密码修改方法
  • 2017-05-11MySQL InnoDB之事务与锁详解
  • 2018-12-05如何利用MySQL数据库命令优化表的数据类型

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 史上最简单的MySQL教程
    • MySQL中主键与索引关系
    • mysql服务器中主从配置介绍
    • 分享自己三天的性能调优遇到的一些问题
    • 远程连接mysql数据库注意事项记录(远程连接慢skip-name-resolve)
    • sqlserver 字符串分拆 语句
    • 使用mss2sql工具将SqlServer转换为Mysql全记录
    • sql2005 远程连接问题解决方法
    • sql查询某字段的相同值
    • 总结图形化实例用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有