揭秘内存中海量数据精确索引的秘诀

转载 2018年01月03日 00:00:00

点击上方蓝字进行关注的都是靓仔和仙女呦


索引的概念


什么是

索引

索引是由用户创建,能够被修改和删除的,实际存储在数据库中的物理存在,它是某一个表中【一列或者若干列】值的集合和相应的指向表中物理标志这些值的数据页的逻辑指针清单。




索引的优点


第一

通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二

可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

第三

可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四

在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五

通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。



索引的缺点


1

耗费

时间

创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。


2

占用

空间

索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

3

维护

较慢

当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。



索引的分类


1聚集索引


表数据按照索引的顺序来存储的。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。


2非聚集索引


表数据存储顺序与索引顺序无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,该层紧邻数据页,其行数量与数据表行数据量一致。


DZ5OKsovm0vuIFAV8s1uA9ErjOoMqlBXpeMr4SibU9KrgLFA4zWqLdib7QZOOerQYYdvibEKicSdkFicGV6icIiaicyjGQ

注: 在一张表上只能创建一个聚集索引,因为真实数据的物理顺序只可能是一种。如果一张表没有聚集索引,那么它被称为“堆集”(Heap)。这样的表中的数据行没有特定的顺序,所有的新行将被添加的表的末尾位置。数据库的索引,在查找的时候,可以快速的找到位置。对于数据库的插入,一般都是插入在最后的一行,索引不能提高插入的性能。

DZ5OKsovm0vuIFAV8s1uA9ErjOoMqlBX7LXBiaMGlRKjZJIKQiaj2Bu3bTKLJxRliaTiaEcNky0X6ZNy7rWMibibwS5w





本文索引

先介绍到这里


因为

在今晚的8:30

动脑学院的five老师


将会在腾讯课堂

动脑学院

java高级免费试听课中


给大家进行更详细的讲解


【揭秘内存中海量数据精确索引的秘诀】


DZ5OKsovm0vuIFAV8s1uA9ErjOoMqlBX7ibHZsYB3JwGCI5H9cw9XDlSNTspMRdMxnoBhfG89IcVBVUSpjG2Egg


而你只需要

在今晚8:30准点

点击最下方阅读原文即可


或者进入腾讯课堂官网

搜索动脑学院

点击Java高级的免费试听课

也可进行观看


DZ5OKsovm0ub7cGbXgTRTkljrXRaKzrT71tKxgfycU1VoxqhRmuiaicj9jLzgBI9wgAIHYYOOUjHibdJLU8xbbygw



推荐阅读


高并发与分布式系统的基石--数据库读写分离实战

这就是学编程的下场...

论程序员与产品经理是怎么互掐起来的

如何假装成为一名好的程序员

2017年长沙互联网线上技术峰会

来自部落的邀请

Java框架 Spring 核心机制

至程序员的情书

Java高级部落送你ofo小黄车60天免费骑行,还不来?

Facebook研发的Cassandra你用过吗?

给 Java开发者的10个大数据工具和框架


推荐程序员必备微信号 

揭秘内存中海量数据精确索引的秘诀

点击上方蓝字进行关注的都是靓仔和仙女呦索引的概念什么是索引索引是由用户创建,能够被修改和删除的,实际存储在数据库中的物理存在,它是某一个表中【一列或者若干列】值的集合和相应的指向表中物理标志这些值的数...
  • TVwR8OfV0P
  • TVwR8OfV0P
  • 2018年01月03日 00:00
  • 540

位图的应用之海量数据查找

位图>  一.什仫是位图>      顾名思义位图就是用每一位来保存数的状态的结构.位图是bitMap的缩写,适用于大规模数据但是数据状态又不是很多的情况的,因为一个位只有0和1两种状态,所以位图...
  • qq_34328833
  • qq_34328833
  • 2016年11月09日 10:58
  • 252

2017双11核心技术揭秘—双十一海量数据下EagleEye的使命和挑战

公众号推荐:公众号:VOA英语每日一听微信号: voahk01可长按扫码关注,谢谢
  • GV7lZB0y87u7C
  • GV7lZB0y87u7C
  • 2018年01月16日 00:00
  • 219

海量数据下的快速定位,HashTable 算法详解及其应用

引言 在今天这个大数据的时代,我们当中的大部分人或许并没有海量的请求需要应对,但相信你总会遇到有大量数据需要处理的时候。为了在后期能够更加高效地对这些数据进行管理和操作,相信你一定不会愿意将宝...
  • iSunwish
  • iSunwish
  • 2018年01月15日 19:35
  • 55

海量数据查找

有一百万个数,是在1到一亿当中随机取值,找出这一亿个数中没出现的数,要求用最小的时间复杂度。 说下思想就行,我想到的就是遍历,但感觉太复杂了。 方案1: 用位图法 用一亿个bit来标记...
  • rongwenbin
  • rongwenbin
  • 2014年01月23日 17:25
  • 779

架构师必备技能:数据库优化手术刀——实战分库分表

点击最上方蓝字进行关注的都是靓仔和仙女呦在最初,应用的数据量比较少,没有任何压力,一般会将所有的数据放在一个库中。但是随着业务的增长,数据量急剧增长,DB压力增大,似乎随时都会挂掉。此时,优化DB的使...
  • TVwR8OfV0P
  • TVwR8OfV0P
  • 2018年01月05日 00:00
  • 366

诺贝尔奖史上的一些错误

就是法官也会出错Keay Davidson, 科学史作家2001年10月8日,星期一翻译:neweroica(yangwang2008(at)gmail.com)如果你想获诺贝尔奖,那么根据历史经验,...
  • neweroica
  • neweroica
  • 2007年06月30日 23:58
  • 2954

Oracle 海量数据处理- 索引的选择

在Oracle数据库中,索引按照索引机制的不同,可以分为三种。 1. B-Tree索引 B-Tree index 应用场景: OLTP 使用比较多,处理键值重复率比较低的字段比较适合使用B...
  • zhongguomao
  • zhongguomao
  • 2016年06月02日 15:19
  • 462

从海量数据中查找数据

现在有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来。   解决办法: 一)用一个32位的整数32位表示32个数,1亿/32 = 312500...
  • zhouwei1221q
  • zhouwei1221q
  • 2015年04月01日 15:39
  • 189

科学不是故弄玄虚(心算的秘诀)

  • bianfu2008zhi
  • bianfu2008zhi
  • 2018年02月09日 12:33
  • 10
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:揭秘内存中海量数据精确索引的秘诀
举报原因:
原因补充:

(最多只允许输入30个字)