Android数据库Sqlite中索引的使用.docxVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android数据库Sqlite中索引的使? 要使?索引对数据库的数据操作进?优化,那必须明确?个问题: 什么是索引 索引的原理 索引的优缺点 什么时候需要使?索引,如何使? 围绕这?个问题,来探究索引在数据库操作中所起到的作?。 数据库索引简介 回忆?下?时候查字典的步骤,索引和字典?录的概念是?致的。字典?录可以让我们不?翻整本字典就找到我们需要的内容页数,然后翻到那?页就可以。索引也是?样,索引是对记录按照多个字段进?排序的?种展现。对表中的某个字段建?索引会创建另?种数据结构,其中保存着字段的值,每个值还包括指向与它相关记录的指针。这样,就不必要查询整个数据库,?然提升了查询效率。同时,索引的数据结构是经过排序的,因?可以对其执??分查找,那就更快了。 B-树与索引 ?多数的数据库都是以B-树或者B+树作为存储结构的,B树索引也是最常见的索引。先简单介绍下B-树,可以增强对索引的理解。 B-树是为磁盘设计的?种多叉平衡树,B树的真正最准确的定义为:?棵含有t(t=2)个关键字的平衡多路查找树。?棵M阶的B树满?以下条件: 1)每个结点?多有M个孩?; 除根结点和叶结点外,其它每个结点?少有M/2个孩?; 根结点?少有两个孩?(除?该树仅包含?个结点); 所有叶结点在同?层,叶结点不包含任何关键字信息,可以看作?种外部节点; 有K个关键字的?叶结点恰好包含K+1个孩?; B树中的每个结点根据实际情况可以包含?量的关键字信息和分?(当然是不能超过磁盘块的??,根据磁盘驱动(disk drives) 的不同,?般块的??在1k~4k左右);这样树的深度降低了,这就意味着查找?个元素只要很少结点从外存磁盘中读?内存,很快访问到要查找的数据。B-树上操作的时间通常由存取磁盘的时间和CPU计算时间这两部分构成。?相对于磁盘的io速度,cpu的计算时间可以忽略不计,所以B树的意义就显现出来了,树的深度降低,?深度决定了io的读写次数。 B树索引是?个典型的树结构,其包含的组件主要是: 叶?节点(Leaf node ):包含条?直接指向表?的数据?。 分?节点(Branch node ):包含的条?指向索引?其他的分?节点或者是叶?节点。 3) 根节点(Root node ):?个B树索引只有?个根节点,它实际就是位于树的最顶端的分?节点。如下图所?: 每个索引都包含两部分内容,?部分是索引本?的值,第?部分即指向数据页或者另?个索引也的指针。每个节点即为?个索引页,包含了多个索引。 当你为?个空表建??个索引,数据库会分配?个空的索引页,这个索引页即代表根节点,在你插?数据之前,这个索引页都是空的。每当你插?数据,数据库就会在根节点创建索引条?,。当根节点插满的时候,再插?数据时,根节点就会分裂。举个例?,根节点插?了如图所?的数据。(超过4个就分裂),这时 候插?H,就会分裂成2个节点,移动G到新的根节点,把H和N放在新的右孩?节点中。如图所?: 根节点插满4个节点插?H,进?分裂。 ?致的分裂步骤如下: 创建两个??节点 将原节点中的数据近似分为两半,写?两个新的孩?节点中。 在跟节点中放置指向页节点的指针 当你不断向表中插?数据,根节点中指向叶节点的指针也被插满,当叶?还需要分裂的时候,根节点没有空间再创建指向新的叶节点的指针。那么数据库就会创建分?节点。随着叶?节点的分裂,根节点中的指针都指向了这些分?节点。随着数据的不断插?,索引会增加更多的分?节点,使树结构变成这样的?个多级结构。 索 引 的 种 类 1)聚集索引:表中?的物理顺序与键值的逻辑(索引)顺序相同。因为数据的物理顺序只能有?种,所以?张表只能有?个聚集索引。如果?张表没有聚集索引,那么这张表就没有顺序的概念,所有的新?都会插?到表的末尾。对于聚集索引,叶节点即存储了数据?,不再有单独的数据页。就?如说我?时候查字典从来不看?录,我觉得字典本?就是?个?录,?如查裴字,只需要翻到p字母开头的,再按顺序找到e。通过这个?法我每次都能最快的查到?师说的那个 字,得到?师的表扬。

文档评论(0)

138****5910 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档