首页 > 其他分享 >主键索引、唯一索引和普通索引的关系

主键索引、唯一索引和普通索引的关系

时间:2023-06-30 10:23:01浏览次数:35  
标签:数据库 唯一 索引 键值 key 主键

  • 主键索引:
    在数据库中定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。主键索引不能为空。每个表只能有一个主键
  • 唯一索引:
    不允许两行具有相同的索引值。但可以都为NULL。 如果现有数据中存在重复的键值,则数据库不允许将新创建的唯一索引与表一起保存。当新数据和表中的键值重复时,数据库会拒绝接受此数据。每个表可以有多个唯一索引
  • 普通索引:
    一般的索引结构,可以在条件删选时加快查询效率,索引字段的值可以重复,可以为空值

ON DUPLICATE key update使用介绍:
有时候由于业务需求,可能需要先去根据某一字段值查询数据库中是否有记录,有则更新,没有则插入。这个时候就可以用到ON DUPLICATE key update这个sql语句了。

标签:数据库,唯一,索引,键值,key,主键
From: https://www.cnblogs.com/sakura579/p/17515897.html

相关文章

  • 存储引擎 索引
    存储引擎mysql默认存储引擎为innodb,可以通过以下代码在创建表时指定存储引擎createtablemy_myisam(----)engine=MyIsaM; 查看当前数据库支持的存储引擎showengines;   引擎选择 索引分类 聚集索引:数据行的物理存储顺序与列值(一般......
  • MongoDB索引Index
    MongoDB索引Index索引概述索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对应用的性能是非常致命的创......
  • 判定字符是否唯一
    题目描述实现一个算法,确定一个字符串s的所有字符是否全都不同。示例1:输入:s="leetcode"输出:false示例2:输入:s="abc"输出:true限制:0<=len(s)<=100如果你不使用额外的数据结构,会很加分。解法方法一:位运算根据示例,可以假定字符串中只包含小写字......
  • 10 | MySQL为什么有时候会选错索引?
    以下内容出自《MySQL实战45讲》10|MySQL为什么有时候会选错索引?优化器的逻辑选择索引是优化器的工作。影响优化器选择的判断标准:扫描行数临时表是否排序扫描行数MySQL在真正执行语句之前,会根据统计信息来估算记录数。这个统计信息就是索引的“区分度“。显然,......
  • java联合索引(复合索引)的好处包括:
    联合索引(复合索引)的好处包括:支持多列查询:联合索引可以用于满足多个列的查询条件,避免了在多个单列索引之间的多次查找和合并。覆盖索引优化:如果联合索引包含了查询需要的所有列,即成为覆盖索引,可以避免回表操作,减少IO开销,提高查询性能。有序性优势:联合索引的顺序可以影响查询的性能。......
  • vue组件-启用less语法以及唯一根节点
    <template><div><divclass="test-box"><h3>这是用户自定义的Test.vue---{{username}}</h3><button@click="changeName">修改用户名</button></div>&l......
  • 数据库索引问题定位与分析
    数据库索引问题定位与分析一.数据库服务器添加慢查询配置1.my.cnf文件添加监控慢查询配置cd/etc/my.cnfvimy.cnf添加如下配置:slow_query_log=1long_query_time=0.012.重启数据库服务器systemctlrestartmysqld3.检查配置是否生效showvariableslike'%slow_query_......
  • 联合索引问题定位与分析
    联合索引问题定位与分析一.配置联合索引二.联合索引生效规则最左侧生效原则1.不生效情况Age在联合索引的第左侧,where字句中,没有用到age所以联合索引不生效2.部分生效情况Email在联合索引的最左侧,slq语句中有email字段,email生效3.联合索引都生效Sql语句中where字段与联合索引完全一致......
  • mybatis中如何获取自增主键
    方法1:在insert标签中使用userGeneratedKeys和keyProperty标签:<insertid=”insertname”usegeneratedkeys=”true”keyproperty=”id”>insertintonames(name)values(#{name})</insert>useGeneratedKeys=true表示开启自动生成主键的功能,keyProperty="id"指......
  • MySQL —— 索引
    MySQL一行记录是怎么存储的?我们每创建一个database(数据库)都会在/var/lib/mysql/目录里面创建一个以database为名的目录,然后保存表结构和表数据的文件都会存放在这个目录里。比如,我这里有一个名为my_test的database,该database里有一张名为t_order数据库表。[root......