• 索引


    概念区别:

    主键:指字段唯一不为空值的列。

    主键索引:指的就是主键,主键没有明确的概念定义,主键既是约束,也是索引,主键是索引的一种,是唯一索引的特殊类型。创建主键的时候,数据库默认会为主键创建一个唯一索引。

    自增主键:字段类型为数字、自增、并且是主键。

    唯一索引:索引列的值必须唯一,但允许有空值。主键是唯一索引,这样说没错。但反火来说唯一索引也是主键就错误了,因为唯一索引允许空值,主键不允许有空值,所以不能说唯一索引也是主键。

    性能区别:

    通过测试,发现主键、自增主键、唯一索引的查询效率不一样,当然这个差距很小,总结为:

    查询:唯一索引 > 自增主键 > 主键(主键索引)

    插入:主键 > 自增主键 > 唯一索引

    测试场景:

    创建3个表,名字段相同:id,name,money,tradDate
    各插入100W条相同的数据

    table A:id为主键,table B:id自增并且是主键,tableC:id创建唯一索引

    查询:

    性能:唯一索引 >自增主键> 主键(主键索引)

    A表(主键):0.06s

    B表(自增主键):0.01s,

    C表(唯一索引):0.00s

    插入:

    10W条数据,批量插入,性能:主键 >自增主键 > 唯一索引

    A表(主键):38.408s

    B表(自增主键):38.708s,

    C表(唯一索引):39.018s

  • 相关阅读:
    centos7安装php7
    将centos7镜像源更新为阿里镜像源
    CentOS7 vscode连接本地虚拟机vsftp服务器
    php 查看扩展,配置文件路径命令
    centos查看程序监听的端口
    centos7搭建ftp服务
    redis-事务
    kettle 执行 kjb 临时文件夹 /tmp permission denied 问题
    Spring 声明式事务与编程式事务详解
    进程和线程的区别
  • 原文地址:https://www.cnblogs.com/haoyu521/p/5786628.html
Copyright © 2020-2023  润新知