简单描述MySQL中,索引,主键,唯一索引,联合索引 的区别,对数据库的性能有什么影响

索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们 包含着对数据表里所有记录的引用指针。

  1. 主键索引(Primary Key): 数据表的主键列使用的就是主键索引。一张数据表有只能有一个主键,并且主键不能为null,不能重复。

  2. 唯一索引(Unique Key) :唯一索引也是一种约束。唯一索引的属性列不能出现重复的数据,但是允许数据为NULL,一张表允许创建多个唯一索引。 建立唯一索引的目的大部分时候都是为了该属性列的数据的唯一性,而不是为了查询效率。也就是说,唯一索引可以保证数据记录的唯一性。

  3. 普通索引 :由关键字 KEY 或 INDEX 定义的索引的唯一任务是加快对数据的访问速度,一张表允许创建多个普通索引,并允许数据重复和NULL。

  4. 前缀索引(Prefix) :前缀索引只适用于字符串类型的数据。前缀索引是对文本的前几个字符创建索引,相比普通索引建立的数据更小,
    因为只取前几个字符。

  5. 全文索引(Full Text) :全文索引主要是为了检索大文本数据中的关键字的信息,是目前搜索引擎数据库使用的一种技术。Mysql5.6之前只有MYISAM引擎支持全文索引,5.6之后InnoDB也支持了全文索引。

主键,是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯 一标识一条记录,使用关键字 PRIMARY KEY 来创建。

索引可以覆盖多个数据列,如像 INDEX(columnA, columnB)索引,这就是联合索引。

索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度, 因为在执行这些写操作时,还要操作索引文件。

索引,主键,唯一索引,联合索引 的区别相关推荐

  1. oracle联合主键 索引,关于复合主键查询时使用索引研究

    当数据库创建表时,每个表只能有一个主键,但是如果想让多个列都成为主键时,就要用到复合主键. 一.主键唯一约束 我们知道当某列为主键时,Oracle会自动将此列创建唯一约束.也就是说不允许有相同的值出现 ...

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

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

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

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

  4. SqlServer为什么自动在主键上建立聚集索引

    微软推荐为每一个表建立一个聚集索引,但是由于sqlserver简单易用,而且很多人并不了解聚集索引,非聚集索引这些东西,所以如果sqlserver不在主键上建立聚集索引的话,可能会导致大部分的表都是堆 ...

  5. mysql 联合索引 唯一_mysql 联合索引和唯一索引

    一般来说.如果有where a=? and b=? and c=? 的语句. 如果表也有DML, 我一般只在a 上建索引.  这也是代价平衡的结果. 一方面 只在a 上建索引那么是 index ran ...

  6. 简述一下索引的匹配原则_Mysql联合索引最左匹配原则

    [toc] 为什么使用联合索引 以联合索引(a,b,c)为例 建立这样的索引相当于建立了索引a.ab.abc三个索引.一个索引顶三个索引当然是好事,毕竟每多一个索引,都会增加写操作的开销和磁盘空间的开 ...

  7. mysql 联合主键_Mysql 创建联合主键

    Mysql 创建联合主键 2008年01月11日 星期五 下午 5:21 使用primary key (fieldlist) 比如: create table mytable ( aa int, bb ...

  8. mysql中主键约束和唯一约束的区别_主键约束和唯一性约束的区别

    1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...

  9. oracle的Oem中设置联合主键,oracle添加联合主键,oracle联合主键

    oracle添加联合主键,oracle联合主键 alter table tablename add constraint unionkeyname primary key (column1,colum ...

  10. 普通索引 唯一索引 主键索引 候选索引

    普通索引 最基本的索引类型,没有唯一性之类的限制.普通索引可以通过以下几种方式创建: 创建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表): 修改 ...

最新文章

  1. OSI中端到端与点到点区别。
  2. javascript json_爬虫里总要用到的 JSON 是什么?
  3. boost::contract模块实现sum的测试程序
  4. 使用Maven搭建一个Web项目
  5. 华清实训的收获(人工智能的小广告和福利)
  6. java实现的简单程序登录界面
  7. pta7-3 统计不及格人数_应用统计专硕院校专业难度分析【青岛大学、苏大、西安交通大学】...
  8. 目标检测排行榜_3D领域重大突破!大华股份人工智能取得KITTI Object 3D车辆检测排行榜第一名...
  9. java 名词解释等
  10. oracle如何快速查找,Oracle 如何快速查找和删除重复记录
  11. linux Centos下磁盘分区及文件系统创建与挂载
  12. linux内核计算次方,linux内核中的循环缓冲去的设计与实现
  13. python有哪些用途-python是什么?python的用途
  14. Medieval Rampage
  15. creo工程图模板_Creo工程图的优越性总结(仅供参考),来自网友与君共享
  16. 系统学习机器学习之总结(三)--多标签分类问题
  17. python超声检测成像仿真_- 深度体验树莓派3:实操用Python驱动超声测距模块
  18. android 焦点的作用,详细介绍Android中的视图焦点Focus的使用
  19. TIFF图像文件格式与实例分析
  20. MySQL窗口函数——分组排序函数:number_rank(),rank(),dense_rank()

热门文章

  1. 【测试沉思录】22. 前端性能测试怎么做?
  2. 酷睿i5 12600HX怎么样 相当于什么水平
  3. <RTL设计的艺术> DDR带宽计算公式
  4. 智慧城市 低功耗物联网技术与应用并进
  5. Python_Numpy
  6. Linus下EDB的安装
  7. 在百度地图上开启 测距的功能
  8. 基于 FPGA Vivado 的74系列IP封装(附源工程)
  9. GDUT 2020 ACM 月赛2 E
  10. FNN模糊神经网络——信息系统客户服务感知评价