一种提高海量数据操作效率的方法及装置制造方法及图纸

技术编号:4226523 阅读:296 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种提高海量数据操作效率的方法,包括:创建查询数据库表、控制数据库表、以及与所述查询数据库表结构一致的插入数据库表;向所述插入数据库表中插入数据,插入完成后,在所述控制数据库表中记录所述插入数据库表的状态为同步就绪;同步进程检查所述控制数据库表中的记录,当发现存在同步就绪的插入数据库表的记录时,将同步就绪的所述插入数据库表中的所有数据同步更新到所述查询数据库表中。本发明专利技术另公开了一种提高海量数据操作效率的装置。采用本发明专利技术能够提高海量数据的插入效率。

【技术实现步骤摘要】

本专利技术涉及数据处理技术,尤其涉及一种提高海量数据操作效率的方法及装置
技术介绍
随着计算机信息化的越来越普及,很多领域的软件系统后台往往会维持一个庞大 的数据库,数据库表中的记录通常也会达到数百万条甚至更多。软件系统在对这些海量数 据库表进行操作时,将不可避免地消耗更多的操作时间,该操作时间也会反映在前台的操 作界面延迟上,这会给用户带来非常糟糕的用户体验。例如,电信行业的用户通常以亿为单 位,因此电信行业的账单数据非常庞大,当用户通过账单系统查询某段时间内的消费情况 时,如果查询操作时间耗时超过10秒或者更多,则用户肯定非常恼火。 为了解决上述问题,提高海量数据的查询效率,通常会对需要频繁查询的海量数 据库表建立索引,查询语句再基于该索引进行查询优化。这种方法的确能大大提高查询效 率,但是也带来了副作用在向这类建立索引后的海量数据库表中插入数据时,需要同时修 改索引,而修改索引给插入操作带来的额外负荷也是不可低估的,因此插入速度会比较慢。 这种方法在优化查询操作的同时却忽略了界面中的插入操作,因而这种优化并不完美;并 且,如果软件系统中插入操作的频率不比查询操作低的话,这种不足就更显而易见了 。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种提高海量数据操作效率的方法及装 置,能够提高海量数据的插入效率。 为达到上述目的,本专利技术的技术方案是这样实现的 —种提高海量数据操作效率的方法,包括 创建查询数据库表、控制数据库表、以及与所述查询数据库表结构一致的插入数 据库表; 向所述插入数据库表中插入数据,插入完成后,在所述控制数据库表中记录所述 插入数据库表的状态为同步就绪; 同步进程检查所述控制数据库表中的记录,当发现存在同步就绪的插入数据库表 的记录时,将同步就绪的所述插入数据库表中的所有数据同步更新到所述查询数据库表 中。 其中,所述方法进一步包括 同步更新完成后,在所述控制数据库表中将所述插入数据库表的状态更改为同步 完成; 清理进程检查所述控制数据库表中的记录,当发现存在同步完成的插入数据库表 的记录时,删除同步完成的所述插入数据库表中的所有数据,并将所述控制数据库表中该 条记录重新初始化,标记为状态可用。 其中,创建所述查询数据库表时还建立所述查询数据库表的索引,并且,所述方法4进一步包括 同步更新完成后,重建所述查询数据库表的索引。 其中,所述插入数据采用定时插入方式。 其中,所述同步进程定时检查所述控制数据库表中的记录。 其中,所述清理进程定时检查所述控制数据库表中的记录。 其中,所述清理进程的定时启动时间比同步进程的定时启动时间长。 —种提高海量数据操作效率的装置,包括创建模块、插入模块、状态标记模块及同步模块;其中, 创建模块,用于创建查询数据库表、控制数据库表、以及与所述查询数据库表结构 一致的插入数据库表; 插入模块,用于向所述插入数据库表中插入数据; 状态标记模块,用于插入模块完成插入后,在所述控制数据库表中记录所述插入 数据库表的状态为同步就绪; 同步模块,用于检查所述控制数据库表中的记录,当发现存在同步就绪的插入数 据库表的记录时,将同步就绪的所述插入数据库表中的所有数据同步更新到所述查询数据 库表中。 其中,所述状态标记模块,进一步用于在同步模块完成同步更新后,在所述控制数 据库表中将所述插入数据库表的状态更改为同步完成; 所述装置进一步包括清理模块,用于检查所述控制数据库表中的记录,当发现存 在同步完成的插入数据库表的记录时,删除同步完成的所述插入数据库表中的所有数据, 并将所述控制数据库表中该条记录重新初始化,标记为状态可用。 其中,所述创建模块,进一步用于在创建所述查询数据库表时还建立所述查询数 据库表的索引,并且,所述装置进一步包括索引重建模块,用于在同步模块完成同步更新 后,重建所述查询数据库表的索引。 由以上技术方案可以看出,本专利技术根据存取分离技术,创建两套数据库表, 一套用 于插入数据,称为插入数据库表;另一套用于查询数据,称为查询数据库表。其中,对插入数 据库表不建立索引,因此在插入数据时无需同时修改索引,从而提高插入效率。附图说明 图1为本专利技术对数据表进行操作的交互图; 图2为本专利技术数据库应用软件系统向数据库中插入数据和查询数据的示意图; 图3为本专利技术应用实例的示意图; 图4为本专利技术数据库中插入查询操作以及同步进程交互的时序图; 图5为本专利技术提高海量数据操作效率的装置的结构示意图。具体实施例方式本专利技术的基本思想是在现有为海量数据库表建立索引提高查询效率的基础上, 引入存取分离的新技术,进一步对插入操作进行优化。存取分离是指存放数据即插入数据 和读取数据即查询数据分别放在不同的数据库表中;这里,将存储插入数据的数据库表称为插入数据库表,也可称为存放数据库表;将存储查询数据的数据库表称为查询数据库表, 也可以称为读取数据库表;对查询数据库表建立索引,进行查询优化,而对插入数据库表不 建立索引,不影响插入数据库的插入操作;并且,再启动一个后台同步进程,定时将插入数 据库中新录入的数据同步更新到查询数据库表中。 为了描述简洁,下文将插入数据库表标识为表S,查询数据库表标识为表R,另外, 将下文涉及到的控制数据库表标识为表C。 如图1所示,本专利技术提高海量数据操作效率的方法包括以下步骤 步骤101,创建表R、表C、以及与表R结构一致的表S。 其中,因为表R是用于查询的,所以在创建表R时,还包括为表R建立索引,以优化 查询操作。此为现有技术,在此不再赘述。 创建表S是为了将需要插入到表R的数据先存储在表S中,而不直接存储到表R 中;另外,表S是根据表R的结构创建的,以使表S的结构与表R的结构保持一致,从而使表 S中的数据能更新到表R中。 这里,表S仅用于插入数据,并且为了提高数据的插入效率,对表S不建立索引。另 外,还可以定时向表S中插入数据,并控制表S中的数据总量,这样也可以提高数据的插入 效率。 步骤102,向表S中插入数据。 步骤103,插入完成后,在表C中记录表S的状态为同步就绪。 步骤104,检查表C中的记录,当发现存在同步就绪的表S的记录时,将表S中的所 有数据同步更新到表R中。 该步骤104是由后台运行的同步进程执行的,并且根据实际情况,同步进程可以 定时检查表C中的记录。 另外,在将表S中的所有数据同步更新到表R的同时,数据库自动更新表R的索 引。 数据同步更新到表R后,由于已经存在表R的索引,所以用户在查询表R时,查询 效率会比较快。 由于数据的同步更新操作会使建立的索引效率下降,因此,为了最大限度地提高 索引效率,同步更新完成后,可以定时在用户使用少的时间点,对已不再插入数据的表R重 建索引。重建索引后,可以提高后续查询操作的效率。其中,该重建索引的操作可以是由同 步进程执行的。 步骤105,同步更新完成后,在表C中将表S的状态更改为同步完成。 步骤106,检查表C中的记录,当发现存在同步完成的表S的记录时,删除表S中的所有数据,并将表C中该条记录重新初始化,标记为状态可用,从而为下一次插入数据做准备。 该步骤106是由后台运行的清理进程执行的,并且根据实际情况,清理进程可以 定时检查表C中的记录。 通常,清理本文档来自技高网...

【技术保护点】
一种提高海量数据操作效率的方法,其特征在于,包括:创建查询数据库表、控制数据库表、以及与所述查询数据库表结构一致的插入数据库表;向所述插入数据库表中插入数据,插入完成后,在所述控制数据库表中记录所述插入数据库表的状态为同步就绪;同步进程检查所述控制数据库表中的记录,当发现存在同步就绪的插入数据库表的记录时,将同步就绪的所述插入数据库表中的所有数据同步更新到所述查询数据库表中。

【技术特征摘要】

【专利技术属性】
技术研发人员:张良发李林松
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1