数据库学习笔记之索引与主键


   未经询问,不可转载,转载请标明原文地址,谢谢合作。本文出自何处觅仁慈

  如上回所说,建立一个图书馆,我们将不同的书籍,以拼音首字母,作者名等等分门别类。在分类之后,我们想要查阅书籍,就会十分方便。由此,我们引入了索引这一概念。

索引
索引的概念

  索引:数据库中,用于标识指定数据的清单。在建立索引之后,将会创建一个索引表,其中存储着每一条数据的特别标识。如果需要进行检索数据,那么会优先检缩索引表,再根据索引表指向的数据直接检索对应的数据。

  同样的我们举个例子:大家小时候应该都或多或少的查阅过字典。对于字典,我们会根据需要翻阅拼音表和偏旁表。这两个表就起到了索引的作用。它把我们导向指定的页数,然后我们就可以直接查阅到自己想要的字了。

索引的作用

  想象一下如果我们没有索引,对于一个几百页的新华字典,又或者是存储着几万本书籍的图书馆,我们应如何去查阅指定的汉字/书籍?这个时候我们只能一点点地翻看每一条数据,而绝大多数数据都不是我们想要的那个,这就会浪费我们大量的时间。有了索引,我们可以排除绝大部分不需要的数据,从而快速定位我们想要的那一个。

  这就是索引的作用。

主键

  在我们对书籍分门别类的时候,总会涉及到这个问题:我们应该怎么标明这个数据,又或者是怎么分辨这个数据?

  在这里,我们便需要引入主键这一概念。

  主键:数据库中,对于某一条数据的唯一标识。他指示了数据的唯一性,也为寻找数据提供了便利。

  想象一下,对于一大堆没有封皮,没有书名,没有出版日期等信息的书籍,我们应该如何把它按照首字母排序?显然我们做不到。在这里,封皮上的书名就起到了标识书籍的作用。它让我们可以分辨其它的书籍,也让我们得以建立索引表。

联合主键

  此时我们又会出现另外一些情况。世上书籍千千万,难免会出现书名重复的问题,怎么办?最简单的办法就是加入一些其它新信息。书名重复那我们可以使用书名+作者来分辨。如果依然重复,那么我们可以使用书名+作者+出版社来分辨。这种使用多种信息来标识数据的唯一性的操作就叫做联合主键。

  联合主键:对于可能重复的数据,使用同一数据的多种信息建立主键,以确保数据的唯一。使用的信息可以不止两个,亦可以是三个,四个等等。

  联合主键很明显,是对普通主键的加强,以更好地确保数据的唯一性。它的作用与普通主键相同。

主键(联合主键)的作用

  主键(联合主键)的作用:确保数据的唯一性、排他性,加快检索速度

使用注意事项

  对于主键与索引,他们不是越多越好的。

  索引:如果一本300页新华字典拥有100页的索引页,那么找起来麻烦吗?绝对麻烦。所以索引的建立原则是尽可能的精简,只为常用的,数据建立主键。只寻找数据之间的最少相同点建立索引,以此减少性能的消耗,也减少额外使用的存储空间。

  主键:如果我们只需要查看书籍的名字就可以100%无误地分辨并找出每本书,那么我们为什么还要查看书籍的作者名,出版社,甚至于书中的少量内容?主键的建立原则依然是尽可能的精简。寻找最少的可以标明数据的同种信息,进行主键的建立。

  注:联合主键是主键的其中一种,而主键也是索引的其中一种

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值