一种虚拟资产保全系统的索引重建方法

文档序号:9396923阅读:228来源:国知局
一种虚拟资产保全系统的索引重建方法
【技术领域】
[0001] 本发明属于索引重建领域,具体涉及一种虚拟资产保全系统的索引重建方法,用 于解决虚拟资产保全系统中的索引重建问题。
【背景技术】
[0002] 虚拟资产是指在网络世界中存在的具有竞争性、持久性以及可以交换或者买卖的 物品包网上银行、网络帐号、网游装备武器、虚拟货币等等。
[0003]目前,我国已经开展了基于eID的网域空间虚拟资产管理与保全技术研究,实现 对虚拟资产的规范统一管理。海量多结构虚拟资产数据数据量大,增长快,如何对其进行高 效的访问是一个需要迫切解决的问题。采用Cassandra分布式数据库是一种可行的解决方 法,但是根据Cassandra的数据存储结构,读取数据只能根据行的唯一标识来获取其各个 字段的值而无法通过某个属性满足某一条件来进行查询。因此引入了而二级索引机制。二 级索引就是为了减少查询效应时间而针对某些特定的字段建立的索引。本发明所指的索引 重建是针对二级索引进行重建。《Cassandra实战》(郭鹏.Cassandra实战[M]·北京:机 械工业出版社,2011) -书中详细介绍了 Cassandra数据库,系统地讲解了 Cassandra数据 库的工作原理和使用方法。
[0004] 《海量虚拟身份数据的存储管理关键技术研究与实现》(邓璐,海量虚拟身份数据 的存储管理关键技术研究与实现,2010),文章中采用Cassandra数据库来存储虚拟身份数 据,根据虚拟身份数据的特点来建立二级索引进而提高查询效率。该文献中对虚拟身份数 据的存储进行了研究,通过建立二级索引来提高查询效率,取得了很好的实验效果,虚拟资 产保全系统在一定程度上可以借鉴。但其二级索引的建立具有一定的主观性,并且一旦建 立之后不会根据数据库的变化进行调整,随着时间的推移,会导致索引维护代价过大,索引 效率逐渐降低。

【发明内容】

[0005] 为解决上述技术问题,本发明在提高查询效率的同时,从提高索引的利用率,降低 维护代价方面进行了研究。具体技术方案如下:
[0006] -种虚拟资产保全系统的索引重建方法,包括以下步骤:
[0007] (1)数据库日志处理:分析虚拟资产保全系统中的数据库操作日志,统计数据库 中各个属性值被查询的次数,计算索引的查询命中率;
[0008] (2)分析索引使用情况:统计各个属性列的索引条数和被命中的条数,计算出索 引使用率;
[0009] (3)进行索引效能评估:将查询命中率和索引使用率设置为衡量指标;根据查询 命中率和索引使用率来评估当前索引所属情况;
[0010] ⑷重建索引,根据步骤(3)索引效能评估的所属情况,对属性列的索引进行增加 或删除来重建索引。
[0011] 进一步地,所述步骤(3)的具体过程为:将查询命中率和索引使用率设置为衡量 指标;建立坐标系,所述查询命中率为纵坐标,所述索引使用率为横坐标,在纵、横坐标轴上 都取值为0.5,1作直线,并与纵、横坐标轴,在坐标系第一象限内围成四个区域,从左至右、 从上至下分别记作区域A、区域B、区域C、区域D ;根据查询命中率和索引使用率的值,确定 落入所在的区域,记为当前索引所属情况。
[0012] 进一步地,所述步骤(4)的具体过程为:所述步骤(3)确定的当前索引所属情况 为落入区域A、区域B、区域C、区域D中的任一种情况;若属于C区域,则删除使用率低的属 性列索引,增加查询命中率低的属性列索引;若属于A区域,删除部分索引使用率低的属性 列索引;若属于D区域,则增加部分查询命中率低且查询次数多的属性列索引;若属于B区 域,不做操作。
[0013] 采用本发明获得的有益效果,本发明针对虚拟资产保全系统提出一种索引重建方 法,通过对索引效能分析方法,计算通过索引查询命中率和索引使用率来表示,然后根据当 前索引的效能,来判断是否需要重建索引,如果需要重建,则根据日志分许的结果选择需要 保留、增加或删除那些字段的索引最终达到重建的目的,重建后的索引空间利用率较高,并 且能减少查询响应时间。
【附图说明】
[0014] 图1是本发明的流程不意图;
[0015] 图2是本发明中数据库日志处理流程图;
[0016] 图3是本发明中索引使用情况分析流程图;
[0017] 图4是本发明中的索引效能分析图;
[0018] 图5是本发明中索引重建步骤的流程图。
【具体实施方式】
[0019] 下面,结合附图和具体实施例对本发明作详细说明。
[0020] 如图1所示,为本发明的虚拟资产保全系统的索引重建方法流程图;具体包括以 下步骤,
[0021] (1)对虚拟资产保全系统中的数据库操作日志进行分析,统计数据库中各个属性 值被查询的次数,计算出查询命中索引的命中率,计算过程是用命中索引的查询数除以总 查询数;
[0022] 本实施例中虚拟资产保全系统采用Cassandra数据库,Cassandra数据库的操作 日志记录了用户的每一次操作,数据库中column代表属性名,value代表属性值,日志分析 过程要记录所有的column被查询的次数以及所有不同的column = value键值对出现的次 数。通过日志记录中的where子句来记录各个属性以及属性与其对应的值被查询的次数, 数据库日志处理过程如图2所示。输入数据库日志,对数据进行过滤,提取所有where子 句,对每一条where子句提取其属性名,若属性名存在,则属性名记录数加1,判断属性值是 否存在,若已经存在,则将该属性名与值的组合计数加1,若属性值不存在,新增该属性名与 值的组合记录,并将该属性名与值的组合计数记为1 ;若属性名不存在,新增该属性名,并 将该属性名记录数设为1。
[0023] 处理结束后,各个属性名被查询的次数以及不同属性名与值的组合被查询的次数 都已统计完成。
[0024] 经常被查询的数据越容易在以后被查询,因此用数据库日志作为一个查询热点判 断的依据,该结果为后面索引效能的分析提供数据基础。
[0025] (2)分析索引使用情况,统计各个属性列的索引条数和被命中的条数,计算出索引 使用率,计算方法为用被命中的索引条数除以索引总条数;
[0026] Cassandra数据库的二级索引是由数据库管理员创建的,仓Il建的时候需指定部分 属性,在此之上建立索引,从本质上索引也是ColumnFamily (列族),索引的行键值就是相 应的属性值,索引中的列值就是对应在Cassandra数据库中该记录所在行的行键值。
[0027] 如表一、表二分别是一个用户数据库和对其用户名建立索引的示例。
[0028] 表一用户数据库
[0032] 当要查询用户名为张三的信息时,不需要到Cassandra数据库中去遍历整个用户 表,只需要查找索引中用户名为张三的ID值,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1