The invention provides a device and method for information query based on shared memory. Among them, the apparatus includes a device initialization, the initialization device in the information query device startup data communication with the corresponding database initialization is performed based on the initialization operation including the creation of shared memory and specify the database according to the number of records is loaded into the shared memory device; query the query execution device, query contains the query conditions from external applications received the inquiry based instruction, from the shared query with the query data recorded in memory. The invention discloses the information query device and method based on the shared memory, which has high data recording inquiry efficiency.
【技术实现步骤摘要】
基于共享内存的信息查询设备及方法
本专利技术涉及信息查询设备及方法,更具体地,涉及基于共享内存的信息查询设备及方法。
技术介绍
目前,随着信息数据处理需求的日益增长以及不同领域的业务种类的日益丰富,在海量数据中进行信息的查询(例如金融卡的BIN(BankIdentificationNumber,即发卡行标识码)查询)变得越来越重要。现有的从海量数据中查询特定信息的设备及方法通常采用查询数据库的方式,即将数据(例如配置参数)存储在数据库中,当需要查询特定的数据记录时,使用关键字作为主键查询所述数据库(例如调用SQL语句进行针对所述数据库的搜索操作),然而,现有的从海量数据中查询特定信息的设备及方法存在如下问题:由于数据库通常是独立部署的,故在访问数据库时需要通过网络进行通信,并且每个数据库搜索操作均是文件操作,由此,查询特定的数据记录耗时较长,例如,假设总的数据记录的数量为n,则查询操作的时间复杂度通常为O(n),或者有时可能会达到O(nlogn),甚至O(n2)。因此,存在如下需求:提供具有高的数据记录查询效率的基于共享内存的信息查询设备及方法。
技术实现思路
为了解决上述现有技术方案所存在的问题,本专利技术提出了具有高的数据记录查询效率的基于共享内存的信息查询设备及方法。本专利技术的目的是通过以下技术方案实现的:一种基于共享内存的信息查询设备,所述基于共享内存的信息查询设备包括:初始化装置,所述初始化装置在所述信息查询设备启动时基于与对应的数据库的数据通信而执行初始化操作,所述初始化操作包括创建共享内存并将所述数据库中指定的数据记录装载到所述共享内存中;查询 ...
【技术保护点】
一种基于共享内存的信息查询设备,所述基于共享内存的信息查询设备包括:初始化装置,所述初始化装置在所述信息查询设备启动时基于与对应的数据库的数据通信而执行初始化操作,所述初始化操作包括创建共享内存并将所述数据库中指定的数据记录装载到所述共享内存中;查询装置,所述查询装置基于接收到的来自外部应用的包含查询条件的查询指令执行查询操作,以从所述共享内存中查询出符合所述查询条件的数据记录;其中,所述查询条件是第一数字串,所述数据记录的关键字段是第二数据串,并且所述第二数据串的长度小于所述第一数字串,其中,所述查询操作包括:(1)设置L=最大第二数据串的长度;(2)如果L大于2,则进入步骤(3),否则,向外部应用返回指示“查询失败”的响应,并终止查询操作;(3)提取所述第一数字串的前L位数字,并根据所述第一数字串的前L位数字计算对应的哈希值;(4)将计算出的所述哈希值与所述共享内存中存储的索引信息中的哈希值进行匹配;(5)如果匹配成功,则根据所匹配的索引信息中的指向数据记录的指针从所述共享内存中获取对应的数据记录,并向外部应用返回指示“查询成功”的响应以及终止查询操作,而如果匹配失败,则使得L=L ...
【技术特征摘要】
1.一种基于共享内存的信息查询设备,所述基于共享内存的信息查询设备包括:初始化装置,所述初始化装置在所述信息查询设备启动时基于与对应的数据库的数据通信而执行初始化操作,所述初始化操作包括创建共享内存并将所述数据库中指定的数据记录装载到所述共享内存中;查询装置,所述查询装置基于接收到的来自外部应用的包含查询条件的查询指令执行查询操作,以从所述共享内存中查询出符合所述查询条件的数据记录;其中,所述查询条件是第一数字串,所述数据记录的关键字段是第二数据串,并且所述第二数据串的长度小于所述第一数字串,其中,所述查询操作包括:(1)设置L=最大第二数据串的长度;(2)如果L大于2,则进入步骤(3),否则,向外部应用返回指示“查询失败”的响应,并终止查询操作;(3)提取所述第一数字串的前L位数字,并根据所述第一数字串的前L位数字计算对应的哈希值;(4)将计算出的所述哈希值与所述共享内存中存储的索引信息中的哈希值进行匹配;(5)如果匹配成功,则根据所匹配的索引信息中的指向数据记录的指针从所述共享内存中获取对应的数据记录,并向外部应用返回指示“查询成功”的响应以及终止查询操作,而如果匹配失败,则使得L=L-1,并返回步骤(2)。2.根据权利要求1所述的基于共享内存的信息查询设备,其特征在于,所述查询条件包括待查询的数据记录的关键字段。3.根据权利要求2所述的基于共享内存的信息查询设备,其特征在于,所述初始化操作进一步包括:从所述数据库依次获取指定的各个参数表的记录数,并且基于所获取的各个参数表的记录数计算共享内存的大小,并基于计算出的共享内存的大小创建所述共享内存。4.根据权利要求3所述的基于共享内存的信息查询设备,其特征在于,所述初始化操作进一步包括:在指定的数据记录被装载到所述共享内存中后,针对每个数据记录执行如下操作:计算该数据记录的关键字段的哈希值,并将计算出的哈希值和指向该数据记录的指针合并为与该数据记录相关联的索引信息,以及...
【专利技术属性】
技术研发人员:邱鹏,杨燕明,
申请(专利权)人:中国银联股份有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。