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

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


索引的概念


什么是

索引

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




索引的优点


第一

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

第二

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

第三

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

第四

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

第五

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



索引的缺点


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个大数据工具和框架


推荐程序员必备微信号 

Java高级部落

微信号:javagaojibuluo



在部落里,将会分享程序员相关的的技术,职场生活,行业热点资讯....以及更多好玩的IT趣文和趣图都在此部落中.....这....只属于我们程序猿.....


 ▼长按下方↓↓↓二维码识别关注

DZ5OKsovm0srRNgT4VPYJ2FWuHvujFnXxia6nboPahRFFHH0QzkSdBWXatQkd2MyJvNQ0DLnPr7P2SKmuVibC8dg


推荐学习资料获取微信号 

长按下方二维码识别关注

?