索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。MySQL提供多种索引类型供选择:普通索引 、唯一性索引、主键索引 、全文索引等等。下面本篇文章就来给大家介绍一下主键索引和普通索引之间的区别 ,希望对你们有所帮助。

普通索引

普通索引是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建:

创建索引,例如CREATE INDEX ON tablename (列的列表);

修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);

创建表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );

主键索引

主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。

主键一般在创建表的时候指定,例如CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) );

但是,我们也可以通过修改表的方式加入主键,例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表); ”。每个表只能有一个主键。

区别

1、普通索引是最基本的索引类型,没有任何限制,值可以为空,仅加速查询。普通索引是可以重复的,一个表中可以有多个普通索引。

2、主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值;索引列的所有值都只能出现一次,即必须唯一。简单来说:主键索引是加速查询 + 列值唯一(不可以有null)+ 表中只有一个。

mysql索引类型和区别是什么意思_mysql主键索引和普通索引之间的区别是什么相关推荐

  1. mysql主键索引需要创建_mysql主键还需要建立索引吗?

    mysql主键不需要建立索引,主键具备索引的功能:当创建或设置主键的时候,mysql会自动添加一个与主键对应的唯一索引,不需要再做额外的添加.数据库管理系统对于主键会自动生成唯一索引,所以主键是一个特 ...

  2. mysql隐式锁定辅助索引_当Mysql - InnoDB行锁遇到复合主键和多列索引-Go语言中文社区...

    背景 今天在配合其他项目组做系统压测,过程中出现了偶发的死锁问题.分析代码后发现有复合主键的update情况,更新复合主键表时只使用了一个字段更新,同时在事务内又有对该表的insert操作,结果出现了 ...

  3. mysql怎么实现生日字段前一个小时提醒_MySql学习笔记(二) 索引的设计和使用...

    作为开发人员,数据库的索引是我们再熟悉不过的了.那么实话真的会了吗,在项目开发中随便定义一个int.varchar后边跟个primary key或者加个index就好了么?考虑到这些咋还真的需要看看专 ...

  4. mysql 主键 聚集索引_MySQL主键索引和聚焦索引

    主键索引 主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录.一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL. 在MySQL ...

  5. mysql主键索引_mysql主键与索引

    一.概念: 1.主键(primary key)能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录的 ...

  6. mysql主键创建非聚集索引_什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推...

    聚集索引 我们先建如下的一张表 CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` var ...

  7. mysql主键和唯一索引_mysql 主键和唯一索引的区别

    主键是一种约束,唯一索引是一种索引,两者在本质上是不同的. 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键. 唯一性索引列允许空值,而主键列不允许为空值. 主键列在创建时,已经默认为非空 ...

  8. 两个主键怎么设置tsql_索引该怎么创建?

    1.2.索引 B+Tree 结构的特性: ①.B+Tree 只有叶子节点会存储真实的数据,非叶子节点只会存储索引字段值: ②.B+Tree的叶子节点之间使用 双向链表 链接,所以更加适合范围查询和排序 ...

  9. mysql主键外键_MySQL主键和外键使用及说明

    摘自网上一个经典的例子:大哥和小弟 一.外键约束 MySQL通过外键约束来保证表与表之间的数据的完整性和准确性. 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以 ...

最新文章

  1. windows10 删除文件 的权限才能对此文件夹进行更改 解决办法
  2. Android程序label居中
  3. LESS-Middleware:Node.js 和 LESS 的完美搭配
  4. 解决Ubuntu14.04 下 E: Encountered a section with no Package: header 问题
  5. mybatis的入门
  6. [APIO2018] Duathlon 铁人两项
  7. Ayoub's function CodeForces - 1301C(组合数学)
  8. php xml 接口调用,php的SimpleXML方法读写XML接口文件实例解析
  9. Map,List,Queue,Set和Stack的区别
  10. 【滤波器】基于matlab GUI FIR+IIR数字滤波器设计【含Matlab源码 324期】
  11. Word 复制或编辑公式就卡死
  12. Maven 安装教程详解
  13. 图扑软件数字孪生民航飞联网,构建智慧民航新业态
  14. python股票量化投资刑不行_【邢不行|量化小讲堂系列10-Python量化入门】量化投资中如何处理复权、除权问题...
  15. 深度探索c++对象模型(5):ctor、dtor、copy
  16. 文档扫描OCR识别_积累
  17. eclipse快速创建无参和有参构造函数:
  18. 计算机寸出,电脑显示器长31cm宽23cm是多少寸?
  19. 苹果xr十大隐藏功能_网上找的一些非常实用的苹果笔记本使用技巧及隐藏功能,收藏了...
  20. 2018牛客暑假多校A题GPA 01分数规划

热门文章

  1. 12.Java 面试题整理(JAVA 代码查错)
  2. Rational Rose学习笔记02:创建用例图
  3. 编写有效用例电子版_JavaScript ES6代理的实际用例
  4. 【英语学习】【English L06】U02 Food L1 Food on the menu
  5. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(3) - MXCSR寄存器详解
  6. Android Navigation 组件(基础篇)
  7. linux内核input子系统解析,ARM Linux内核Input输入子系统浅解
  8. ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
  9. 共享单车数据集_共享单车项目数据可视化展示
  10. centos8 安装geany