CN109800237A - 数据查询方法、装置和计算机可读存储介质 - Google Patents
数据查询方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109800237A CN109800237A CN201910082314.3A CN201910082314A CN109800237A CN 109800237 A CN109800237 A CN 109800237A CN 201910082314 A CN201910082314 A CN 201910082314A CN 109800237 A CN109800237 A CN 109800237A
- Authority
- CN
- China
- Prior art keywords
- data
- type
- grids
- column
- line number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明公开了一种数据查询方法、装置和计算机可读存储介质,属于计算机技术领域。所述方法包括:获取第一数据网格;将第一数据网格存储到内存中;当检测到输入的SQL语句时,对SQL语句进行解析;当解析出所要查询的数据所属的至少一个类型和所述至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取所述至少一个类型中每个类型指示的一列数据;根据所述至少一个类型中每个类型对应的数据处理方式,对所述至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集;显示第一数据集。本发明实现了通过SQL语句对内存中数据的查询,可以在不改变用户在前端的数据查询方式的情况下,大大提高数据查询效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据查询方法、装置和计算机可读存储介质。
背景技术
随着计算机技术的快速发展,诸如终端、服务器等设备存储数据的能力日益提升,如何在设备存储的大量数据中快速查找出需要的数据,已经成为人们关注的焦点。
相关技术中,常将数据存储在数据库中,然后通过SQL(Structured QueryLanguage,结构化查询语言)语句从数据库中查询所需的数据。然而,从数据库中读取数据往往需要较长时间,从而导致数据查询效率较低。
发明内容
本发明实施例提供了一种数据查询方法、装置和计算机可读存储介质,可以解决相关技术中数据查询效率较低的问题。所述技术方案如下:
第一方面,提供了一种数据查询方法,所述方法包括:
获取第一数据网格,所述第一数据网格是n行m列的网格,所述第一数据网格的n行中的每一行包括分属于不同类型的m个数据,所述第一数据网格的m列中的每一列包括属于同一类型的n个数据,所述n和所述m均为正整数;
将所述第一数据网格存储到内存中;
当检测到输入的SQL语句时,对所述SQL语句进行解析;
当解析出所要查询的数据所属的至少一个类型和所述至少一个类型中每个类型对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个类型中每个类型指示的一列数据;
根据所述至少一个类型中每个类型对应的数据处理方式,对所述至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集;
显示所述第一数据集。
可选地,所述获取第一数据网格,包括:
获取第二数据集,所述第二数据集中包括n个记录,所述n个记录中的每个记录包括分属于不同类型的m个数据;
将所述n个记录中的第i个记录包括的m个数据作为所述第一数据网格的第i行,得到所述第一数据网格,所述i为小于或等于所述m的正整数。
可选地,所述对所述SQL语句进行解析之后,还包括:
当解析出所要查询的数据具有的至少一个行号和所述至少一个行号中每个行号对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个行号中每个行号指示的一行数据;
根据所述至少一个行号中每个行号对应的数据处理方式,对所述至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集;
显示所述第三数据集。
可选地,所述从所述内存中存储的所述第一数据网格中获取所述至少一个类型中每个类型所指示的一列数据,包括:
当所述至少一个类型为所述第一数据网格包括的数据所属的m个类型中的部分类型时,从所述内存中存储的所述第一数据网络中获取所述至少一个类型一一指示的至少一列数据;
将所述至少一列数据中的每一列数据作为第二数据网格的每一列,得到所述第二数据网格;
相应地,所述根据所述至少一个类型中每个类型对应的数据处理方式,对所述至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集,包括:
按照目标类型对应的数据处理方式,对所述目标类型在所述第二数据网格中指示的一列数据进行处理,得到所述目标类型对应的处理数据,所述目标类型为所述至少一个类型中的任意一个类型;
将所述至少一个类型中每个类型对应的处理数据确定为所述第一数据集。
可选地,所述数据处理方式包括不处理、求个数、求最大、求最小、求和或求平均。
第二方面,提供了一种数据查询装置,所述装置包括:
第一获取模块,用于获取第一数据网格,所述第一数据网格是n行m列的网格,所述第一数据网格的n行中的每一行包括分属于不同类型的m个数据,所述第一数据网格的m列中的每一列包括属于同一类型的n个数据,所述n和所述m均为正整数;
存储模块,用于将所述第一数据网格存储到内存中;
解析模块,用于当检测到输入的SQL语句时,对所述SQL语句进行解析;
第二获取模块,用于当解析出所要查询的数据所属的至少一个类型和所述至少一个类型中每个类型对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个类型中每个类型指示的一列数据;
第一处理模块,用于根据所述至少一个类型中每个类型对应的数据处理方式,对所述至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集;
第一显示模块,用于显示所述第一数据集。
可选地,所述第一获取模块包括:
第一获取单元,用于获取第二数据集,所述第二数据集中包括n个记录,所述n个记录中的每个记录包括分属于不同类型的m个数据;
第一生成单元,用于将所述n个记录中的第i个记录包括的m个数据作为所述第一数据网格的第i行,得到所述第一数据网格,所述i为小于或等于所述m的正整数。
可选地,所述装置还包括:
第三获取模块,用于当解析出所要查询的数据具有的至少一个行号和所述至少一个行号中每个行号对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个行号中每个行号指示的一行数据;
第二处理模块,用于根据所述至少一个行号中每个行号对应的数据处理方式,对所述至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集;
第二显示模块,用于显示所述第三数据集。
可选地,所述第二获取模块包括:
第二获取单元,用于当所述至少一个类型为所述第一数据网格包括的数据所属的m个类型中的部分类型时,从所述内存中存储的所述第一数据网络中获取所述至少一个类型一一指示的至少一列数据;
第二生成单元,用于将所述至少一列数据中的每一列数据作为第二数据网格的每一列,得到所述第二数据网格;
相应地,所述第一处理模块包括:
处理单元,用于按照目标类型对应的数据处理方式,对所述目标类型在所述第二数据网格中指示的一列数据进行处理,得到所述目标类型对应的处理数据,所述目标类型为所述至少一个类型中的任意一个类型;
确定单元,用于将所述至少一个类型中每个类型对应的处理数据确定为所述第一数据集。
可选地,所述数据处理方式包括不处理、求个数、求最大、求最小、求和或求平均。
第三方面,提供了一种计算机可读存储介质,所述存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的方法的步骤。
本发明实施例提供的技术方案至少可以带来以下有益效果:获取第一数据网格并存储到内存中,第一数据网格是n行m列的网格,第一数据网格的n行中的每一行包括分属于不同类型的m个数据,第一数据网格的m列中的每一列包括属于同一类型的n个数据。之后,当检测到输入的SQL语句时,对SQL语句进行解析。当解析出所要查询的数据所属的至少一个类型和该至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取该至少一个类型中每个类型指示的一列数据,根据该至少一个类型中每个类型对应的数据处理方式,对该至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集并显示。如此,实现了通过SQL语句对内存中数据的查询,从而可以在不改变用户在前端的数据查询方式的情况下,直接从内存中获取用户所需的数据,由于从内存中读取数据的速度较高,所以可以大大提高数据查询效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据查询方法的流程图;
图2是本发明实施例提供的另一种数据查询方法的流程图;
图3是本发明实施例提供的一种数据查询过程的流程图;
图4是本发明实施例提供的一种数据查询装置的结构示意图;
图5是本发明实施例提供的另一种数据查询装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细地解释说明之前,对本发明实施例的应用场景予以说明。
在大数据场景下,在页面上可视化的展示一个图表或报表的速度直接影响用户分析数据的效率,因而数据查询效率直接影响用户体验。相关技术中,常将数据存储在数据库中,然后用户可以通过SQL语句来从数据库中查询数据。然而,从数据库中读取数据往往需要较长时间,从而导致数据查询效率较低。
目前,虽然从内存中读取数据的速度远远大于从数据库中读取数据的速度,但是从内存中查询数据时,只能通过预先提供的与该内存对应的函数接口来进行查询,而不能直接通过SQL语句来进行查询,因而给用户的使用带来极大的不便。
为此,本发明实施例提供了一种数据查询方式,可以实现通过SQL语句来从内存中查询数据,如此,可以在不改变用户在前端的数据查询方式的情况下,大大提高数据查询效率。
图1是本发明实施例提供的一种数据查询方法的流程图。参见图1,该方法包括:
步骤101:获取第一数据网格,第一数据网格是n行m列的网格,第一数据网格的n行中的每一行包括分属于不同类型的m个数据,第一数据网格的m列中的每一列包括属于同一类型的n个数据,n和m均为正整数。
步骤102:将第一数据网格存储到内存中。
步骤103:当检测到输入的SQL语句时,对SQL语句进行解析。
步骤104:当解析出所要查询的数据所属的至少一个类型和至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取至少一个类型中每个类型指示的一列数据。
步骤105:根据至少一个类型中每个类型对应的数据处理方式,对至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集。
步骤106:显示第一数据集。
在本发明实施例中,获取第一数据网格并存储到内存中,第一数据网格是n行m列的网格,第一数据网格的n行中的每一行包括分属于不同类型的m个数据,第一数据网格的m列中的每一列包括属于同一类型的n个数据。之后,当检测到输入的SQL语句时,对SQL语句进行解析。当解析出所要查询的数据所属的至少一个类型和该至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取该至少一个类型中每个类型指示的一列数据,根据该至少一个类型中每个类型对应的数据处理方式,对该至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集并显示。如此,实现了通过SQL语句对内存中数据的查询,从而可以在不改变用户在前端的数据查询方式的情况下,直接从内存中获取用户所需的数据,由于从内存中读取数据的速度较高,所以可以大大提高数据查询效率。
可选地,获取第一数据网格,包括:
获取第二数据集,第二数据集中包括n个记录,n个记录中的每个记录包括分属于不同类型的m个数据;
将n个记录中的第i个记录包括的m个数据作为第一数据网格的第i行,得到第一数据网格,i为小于或等于m的正整数。
可选地,对SQL语句进行解析之后,还包括:
当解析出所要查询的数据具有的至少一个行号和至少一个行号中每个行号对应的数据处理方式时,从内存中存储的第一数据网格中获取至少一个行号中每个行号指示的一行数据;
根据至少一个行号中每个行号对应的数据处理方式,对至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集;
显示第三数据集。
可选地,从内存中存储的第一数据网格中获取至少一个类型中每个类型所指示的一列数据,包括:
当至少一个类型为第一数据网格包括的数据所属的m个类型中的部分类型时,从内存中存储的第一数据网络中获取至少一个类型一一指示的至少一列数据;
将至少一列数据中的每一列数据作为第二数据网格的每一列,得到第二数据网格;
相应地,根据至少一个类型中每个类型对应的数据处理方式,对至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集,包括:
按照目标类型对应的数据处理方式,对目标类型在第二数据网格中指示的一列数据进行处理,得到目标类型对应的处理数据,目标类型为至少一个类型中的任意一个类型;
将至少一个类型中每个类型对应的处理数据确定为第一数据集。
可选地,数据处理方式包括不处理、求个数、求最大、求最小、求和或求平均。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。
图2是本发明实施例提供的一种数据查询方法的流程图。参见图2,该方法包括:
步骤201:获取第一数据网格。
需要说明的是,第一数据网格是n行m列的网格,第一数据网格的n行中的每一行包括分属于不同类型的m个数据,第一数据网格的m列中的每一列包括属于同一类型的n个数据,n和m均为正整数。第一数据网格中的m列数据一一属于m个类型,即该m个类型一一指示第一数据网格中的m列数据;第一数据网格中的n行数据一一具有n个行号,即该n个行号一一指示第一数据网格中的n行数据。例如,第一数据网格可以为java中的列表(list)、哈希表(hashmap)等。
具体地,步骤201的操作可以为:获取第二数据集,将第二数据集中包括的n个记录中的第i个记录包括的m个数据作为第一数据网格的第i行,得到第一数据网格,i为小于或等于m的正整数。
需要说明的是,第二数据集中包括n个记录,该n个记录中的每个记录包括分属于不同类型的m个数据。该n个记录与第一数据网格的n行一一对应,此时是将该n个记录包括的数据一一作为第一数据网格的n行来得到第一数据网格。
另外,第二数据集可以为用户经常需要查询的数据,第二数据集通常可以存储在数据库中,此时可以从数据库中获取第二数据集来生成第一数据网格。
步骤202:将第一数据网格存储到内存中。
需要说明的是,实际应用中,可以先从数据库中获取用户经常需要查询的第二数据集,然后将第二数据集组装成第一数据网格后存储到内存中,即改变第二数据集的数据结构后将其存储到内存中,以便后续可以直接从内存中读取所需的数据,提高数据查询效率。
步骤203:当检测到输入的SQL语句时,对该SQL语句进行解析。
需要说明的是,SQL语句为用户输入的用于查询其所需的数据的一种语言。对该SQL语句进行解析后可以获知所要查询的数据所属的类型、具有的行号、数据处理方式等,该数据处理方式可以包括不处理、求个数(count)、求最大(max)、求最小(min)、求和(sum)或求平均(avg)等处理方式。
另外,本发明实施例中用户可以通过直接输入SQL语句来查询数据,因而不会改变用户在前端的数据查询方式,方便用户使用。
再者,当解析出所要查询的数据所属的类型时,可以继续通过如下步骤204-步骤205来进行数据查询;当解析出所要查询的数据具有的行号时,可以继续通过如下步骤206-步骤207来进行数据查询。
步骤204:当解析出所要查询的数据所属的至少一个类型和该至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取该至少一个类型中每个类型指示的一列数据。
由于内存中存储的第一数据网格中的m列数据一一属于m个类型,因此,当解析出所要查询的数据所属的至少一个类型时,可以直接从内存中存储的第一数据网格中获取该至少一个类型中每个类型指示的一列数据。由于从内存中读取数据的速度远远大于从数据库中读取数据的速度,因此,本发明实施例中可以快速获取到该至少一个类型在第一数据网格中一一指示的至少一列数据。
其中,从内存中存储的第一数据网格中获取该至少一个类型中每个类型指示的一列数据的操作可以为:当该至少一个类型为第一数据网格包括的数据所属的m个类型中的部分类型时,从内存中存储的第一数据网络中获取该至少一个类型一一指示的至少一列数据,将该至少一列数据中的每一列数据作为第二数据网格的每一列,得到第二数据网格;当该至少一个类型为第一数据网格包括的数据所属的m个类型时,获取内存中存储的第一数据网络。
需要说明的是,当该至少一个类型为第一数据网格包括的数据所属的m个类型中的部分类型时,表明用户所需的数据为第一数据网格中的部分列数据,因而此时可以对第一数据网格包括的列数据进行过滤,并将过滤得到的列数据放置到第二数据网格中,以便后续可以基于第二数据网格快速进行数据处理。当该至少一个类型为第一数据网格包括的数据所属的m个类型时,表明用户所需的数据为第一数据网格中的所有数据,因而此时可以直接获取第一数据网格。
步骤205:根据该至少一个类型中每个类型对应的数据处理方式,对该至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集,显示第一数据集。
需要说明的是,如果目标类型对应的数据处理方式为求个数、求最大、求最小、求和或求平均等分组聚合计算方式,则可以按照目标类型对应的数据处理方式,对目标类型指示的一列数据进行分组聚合计算,得到目标类型对应的处理数据来作为第一数据集中的数据;如果目标类型对应的数据处理方式为不处理,则可以直接将目标类型指示的一列数据确定为目标类型对应的处理数据,将目标类型对应的处理数据作为第一数据集中的数据。其中,目标类型为该至少一个类型中任意一个类型。
为了提高数据处理速度,当步骤204中获取到的该至少一个类型一一指示的至少一列数据为第二数据网格或第一数据网格时,步骤205的操作可以为:按照目标类型对应的数据处理方式,对目标类型在第二数据网格或第一数据网格中指示的一列数据进行处理,得到目标类型对应的处理数据;将该至少一个类型中每个类型对应的处理数据确定为第一数据集。
需要说明的是,得到第二数据集后,可以显示第二数据集,此时用户就可以在前端获知自己所需的数据,从而完成数据查询过程。
步骤206:当解析出所要查询的数据具有的至少一个行号和该至少一个行号中每个行号对应的数据处理方式时,从内存中存储的第一数据网格中获取该至少一个行号中每个行号指示的一行数据。
由于内存中存储的第一数据网格中的n行数据一一具有n个行号,因此,当解析出所要查询的数据具有的至少一个行号时,可以直接从内存中存储的第一数据网格中获取该至少一个行号中每个行号指示的一行数据。由于从内存中读取数据的速度远远大于从数据库中读取数据的速度,因此,本发明实施例中可以快速获取到该至少一个行号在第一数据网格中一一指示的至少一行数据。
其中,从内存中存储的第一数据网格中获取该至少一个行号中每个行号指示的一行数据的操作可以为:当该至少一个行号为第一数据网格包括的数据具有的n个行号中的部分行号时,从内存中存储的第一数据网络中获取该至少一个行号一一指示的至少一行数据,将该至少一行数据中的每一行数据作为第三数据网格的每一行,得到第三数据网格;当该至少一个行号为第一数据网格包括的数据具有的n个行号时,获取内存中存储的第一数据网络。
需要说明的是,当该至少一个行号为第一数据网格包括的数据具有的n个行号中的部分行号时,表明用户所需的数据为第一数据网格中的部分行数据,因而此时可以对第一数据网格包括的行数据进行过滤,并将过滤得到的行数据放置到第三数据网格中,以便后续可以基于第三数据网格快速进行数据处理。当该至少一个行号为第一数据网格包括的数据具有的n个行号时,表明用户所需的数据为第一数据网格中的所有数据,因而此时可以直接获取第一数据网格。
步骤207:根据该至少一个行号中每个行号对应的数据处理方式,对该至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集,显示第三数据集。
需要说明的是,如果目标行号对应的数据处理方式为求个数、求最大、求最小、求和或求平均等分组聚合计算方式,则可以按照目标行号对应的数据处理方式,对目标行号指示的一行数据进行分组聚合计算,得到目标行号对应的处理数据来作为第三数据集中的数据;如果目标行号对应的数据处理方式为不处理,则可以直接将目标行号指示的一行数据确定为目标行号对应的处理数据,将目标行号对应的处理数据作为第三数据集中的数据。其中,目标行号为该至少一个行号中任意一个行号。
为了提高数据处理速度,当步骤206中获取到的该至少一个行号一一指示的至少一行数据为第三数据网格或第一数据网格时,步骤207的操作可以为:按照目标行号对应的数据处理方式,对目标行号在第三数据网格或第一数据网格中指示的一行数据进行处理,得到目标行号对应的处理数据;将该至少一个行号中每个行号对应的处理数据确定为第三数据集。
需要说明的是,得到第三数据集后,可以显示第三数据集,此时用户就可以在前端获知自己所需的数据,从而完成数据查询过程。
为了便于理解,下面结合图3来对上述数据查询过程进行举例说明。参见图3,该数据查询过程可以包括如下步骤301-步骤309:
步骤301:获取第一数据网格并存储到内存中;
步骤302:当检测到输入的SQL语句时,对该SQL语句进行解析;
步骤303:当解析出所要查询的数据所属的至少一个类型时,判断该至少一个类型是否为第一数据网格包括的数据所属的m个类型中的部分类型,如果否,则执行步骤304,如果是,则执行步骤305;
步骤304:获取内存中存储的第一数据网格,然后执行步骤306;
步骤305:从内存中存储的第一数据网络中获取该至少一个类型一一指示的至少一列数据,将该至少一列数据中的每一列数据作为第二数据网格的每一列,得到第二数据网格,然后执行步骤306;
步骤306:判断该至少一个类型中每个类型对应的数据处理方式是否均为不处理,如果否,则执行步骤307,如果是,则执行步骤308;
步骤307:按照目标类型对应的数据处理方式,对目标类型在步骤304中得到的第一数据网格或在步骤305中得到的第二数据网格中指示的一列数据进行处理,得到目标类型对应的处理数据,将该至少一个类型中每个类型对应的处理数据确定为第一数据集,然后执行步骤309;
步骤308:将步骤304中得到的第一数据网格中的数据或将步骤305中得到的第二数据网格中的数据确定为第一数据集,然后执行步骤309;
步骤309:显示第一数据集。
在本发明实施例中,获取第一数据网格并存储到内存中,第一数据网格是n行m列的网格,第一数据网格的n行中的每一行包括分属于不同类型的m个数据,第一数据网格的m列中的每一列包括属于同一类型的n个数据。之后,当检测到输入的SQL语句时,对SQL语句进行解析。当解析出所要查询的数据所属的至少一个类型和该至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取该至少一个类型中每个类型指示的一列数据,根据该至少一个类型中每个类型对应的数据处理方式,对该至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集并显示。当解析出所要查询的数据具有的至少一个行号和该至少一个行号中每个行号对应的数据处理方式时,从内存中存储的第一数据网格中获取该至少一个行号中每个行号指示的一行数据,根据该至少一个行号中每个行号对应的数据处理方式,对该至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集并显示。如此,实现了通过SQL语句对内存中数据的查询,从而可以在不改变用户在前端的数据查询方式的情况下,直接从内存中获取用户所需的数据,由于从内存中读取数据的速度较高,所以可以大大提高数据查询效率。
图4是本发明实施例提供的一种数据查询装置的结构示意图。参见图4,该装置包括:第一获取模块401、存储模块402、解析模块403、第二获取模块404、第一处理模块405和第一显示模块406。
第一获取模块401,用于获取第一数据网格,第一数据网格是n行m列的网格,第一数据网格的n行中的每一行包括分属于不同类型的m个数据,第一数据网格的m列中的每一列包括属于同一类型的n个数据,n和m均为正整数;
存储模块402,用于将第一数据网格存储到内存中;
解析模块403,用于当检测到输入的SQL语句时,对SQL语句进行解析;
第二获取模块404,用于当解析出所要查询的数据所属的至少一个类型和至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取至少一个类型中每个类型指示的一列数据;
第一处理模块405,用于根据至少一个类型中每个类型对应的数据处理方式,对至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集;
第一显示模块406,用于显示第一数据集。
可选地,第一获取模块401包括:
第一获取单元,用于获取第二数据集,第二数据集中包括n个记录,n个记录中的每个记录包括分属于不同类型的m个数据;
第一生成单元,用于将n个记录中的第i个记录包括的m个数据作为第一数据网格的第i行,得到第一数据网格,i为小于或等于m的正整数。
可选地,该装置还包括:
第三获取模块,用于当解析出所要查询的数据具有的至少一个行号和至少一个行号中每个行号对应的数据处理方式时,从内存中存储的第一数据网格中获取至少一个行号中每个行号指示的一行数据;
第二处理模块,用于根据至少一个行号中每个行号对应的数据处理方式,对至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集;
第二显示模块,用于显示第三数据集。
可选地,第二获取模块404包括:
第二获取单元,用于当至少一个类型为第一数据网格包括的数据所属的m个类型中的部分类型时,从内存中存储的第一数据网络中获取至少一个类型一一指示的至少一列数据;
第二生成单元,用于将至少一列数据中的每一列数据作为第二数据网格的每一列,得到第二数据网格;
相应地,第一处理模块405包括:
处理单元,用于按照目标类型对应的数据处理方式,对目标类型在第二数据网格中指示的一列数据进行处理,得到目标类型对应的处理数据,目标类型为至少一个类型中的任意一个类型;
确定单元,用于将至少一个类型中每个类型对应的处理数据确定为第一数据集。
可选地,数据处理方式包括不处理、求个数、求最大、求最小、求和或求平均。
在本发明实施例中,获取第一数据网格并存储到内存中,第一数据网格是n行m列的网格,第一数据网格的n行中的每一行包括分属于不同类型的m个数据,第一数据网格的m列中的每一列包括属于同一类型的n个数据。之后,当检测到输入的SQL语句时,对SQL语句进行解析。当解析出所要查询的数据所属的至少一个类型和该至少一个类型中每个类型对应的数据处理方式时,从内存中存储的第一数据网格中获取该至少一个类型中每个类型指示的一列数据,根据该至少一个类型中每个类型对应的数据处理方式,对该至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集并显示。如此,实现了通过SQL语句对内存中数据的查询,从而可以在不改变用户在前端的数据查询方式的情况下,直接从内存中获取用户所需的数据,由于从内存中读取数据的速度较高,所以可以大大提高数据查询效率。
需要说明的是:上述实施例提供的数据查询装置在数据查询时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据查询装置与数据查询方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的一种数据查询装置的结构示意图。参见图5,该装置可以为终端500,终端500可以是:智能手机、平板电脑、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端500包括有:处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的数据查询方法。
在一些实施例中,终端500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、触摸显示屏505、摄像头506、音频电路507、定位组件508和电源509中的至少一种。
外围设备接口503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本申请对此不加以限定。
射频电路504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置在终端500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。
定位组件508用于定位终端500的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件508可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源509用于为终端500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。
加速度传感器511可以检测以终端500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制触摸显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或用户的运动数据的采集。
陀螺仪传感器512可以检测终端500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端500的3D动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器513可以设置在终端500的侧边框和/或触摸显示屏505的下层。当压力传感器513设置在终端500的侧边框时,可以检测用户对终端500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在触摸显示屏505的下层时,由处理器501根据用户对触摸显示屏505的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置在终端500的正面、背面或侧面。当终端500上设置有物理按键或厂商Logo时,指纹传感器514可以与物理按键或厂商Logo集成在一起。
光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制触摸显示屏505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏505的显示亮度;当环境光强度较低时,调低触摸显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。
接近传感器516也称距离传感器,通常设置在终端500的前面板。接近传感器516用于采集用户与终端500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端500的正面之间的距离逐渐变小时,由处理器501控制触摸显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与终端500的正面之间的距离逐渐变大时,由处理器501控制触摸显示屏505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图5中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种数据查询方法,其特征在于,所述方法包括:
获取第一数据网格,所述第一数据网格是n行m列的网格,所述第一数据网格的n行中的每一行包括分属于不同类型的m个数据,所述第一数据网格的m列中的每一列包括属于同一类型的n个数据,所述n和所述m均为正整数;
将所述第一数据网格存储到内存中;
当检测到输入的结构化查询语言SQL语句时,对所述SQL语句进行解析;
当解析出所要查询的数据所属的至少一个类型和所述至少一个类型中每个类型对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个类型中每个类型指示的一列数据;
根据所述至少一个类型中每个类型对应的数据处理方式,对所述至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集;
显示所述第一数据集。
2.如权利要求1所述的方法,其特征在于,所述获取第一数据网格,包括:
获取第二数据集,所述第二数据集中包括n个记录,所述n个记录中的每个记录包括分属于不同类型的m个数据;
将所述n个记录中的第i个记录包括的m个数据作为所述第一数据网格的第i行,得到所述第一数据网格,所述i为小于或等于所述m的正整数。
3.如权利要求1所述的方法,其特征在于,所述对所述SQL语句进行解析之后,还包括:
当解析出所要查询的数据具有的至少一个行号和所述至少一个行号中每个行号对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个行号中每个行号指示的一行数据;
根据所述至少一个行号中每个行号对应的数据处理方式,对所述至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集;
显示所述第三数据集。
4.如权利要求1所述的方法,其特征在于,所述从所述内存中存储的所述第一数据网格中获取所述至少一个类型中每个类型所指示的一列数据,包括:
当所述至少一个类型为所述第一数据网格包括的数据所属的m个类型中的部分类型时,从所述内存中存储的所述第一数据网络中获取所述至少一个类型一一指示的至少一列数据;
将所述至少一列数据中的每一列数据作为第二数据网格的每一列,得到所述第二数据网格;
相应地,所述根据所述至少一个类型中每个类型对应的数据处理方式,对所述至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集,包括:
按照目标类型对应的数据处理方式,对所述目标类型在所述第二数据网格中指示的一列数据进行处理,得到所述目标类型对应的处理数据,所述目标类型为所述至少一个类型中的任意一个类型;
将所述至少一个类型中每个类型对应的处理数据确定为所述第一数据集。
5.如权利要求1-4任一所述的方法,其特征在于,所述数据处理方式包括不处理、求个数、求最大、求最小、求和或求平均。
6.一种数据查询装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一数据网格,所述第一数据网格是n行m列的网格,所述第一数据网格的n行中的每一行包括分属于不同类型的m个数据,所述第一数据网格的m列中的每一列包括属于同一类型的n个数据,所述n和所述m均为正整数;
存储模块,用于将所述第一数据网格存储到内存中;
解析模块,用于当检测到输入的结构化查询语言SQL语句时,对所述SQL语句进行解析;
第二获取模块,用于当解析出所要查询的数据所属的至少一个类型和所述至少一个类型中每个类型对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个类型中每个类型指示的一列数据;
第一处理模块,用于根据所述至少一个类型中每个类型对应的数据处理方式,对所述至少一个类型中每个类型指示的一列数据进行处理,得到第一数据集;
第一显示模块,用于显示所述第一数据集。
7.如权利要求6所述的装置,其特征在于,所述第一获取模块包括:
第一获取单元,用于获取第二数据集,所述第二数据集中包括n个记录,所述n个记录中的每个记录包括分属于不同类型的m个数据;
第一生成单元,用于将所述n个记录中的第i个记录包括的m个数据作为所述第一数据网格的第i行,得到所述第一数据网格,所述i为小于或等于所述m的正整数。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于当解析出所要查询的数据具有的至少一个行号和所述至少一个行号中每个行号对应的数据处理方式时,从所述内存中存储的所述第一数据网格中获取所述至少一个行号中每个行号指示的一行数据;
第二处理模块,用于根据所述至少一个行号中每个行号对应的数据处理方式,对所述至少一个行号中每个行号指示的一行数据进行处理,得到第三数据集;
第二显示模块,用于显示所述第三数据集。
9.如权利要求6所述的装置,其特征在于,所述第二获取模块包括:
第二获取单元,用于当所述至少一个类型为所述第一数据网格包括的数据所属的m个类型中的部分类型时,从所述内存中存储的所述第一数据网络中获取所述至少一个类型一一指示的至少一列数据;
第二生成单元,用于将所述至少一列数据中的每一列数据作为第二数据网格的每一列,得到所述第二数据网格;
相应地,所述第一处理模块包括:
处理单元,用于按照目标类型对应的数据处理方式,对所述目标类型在所述第二数据网格中指示的一列数据进行处理,得到所述目标类型对应的处理数据,所述目标类型为所述至少一个类型中的任意一个类型;
确定单元,用于将所述至少一个类型中每个类型对应的处理数据确定为所述第一数据集。
10.如权利要求6-9任一所述的装置,其特征在于,所述数据处理方式包括不处理、求个数、求最大、求最小、求和或求平均。
11.一种计算机可读存储介质,所述存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-5所述的任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910082314.3A CN109800237A (zh) | 2019-01-28 | 2019-01-28 | 数据查询方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910082314.3A CN109800237A (zh) | 2019-01-28 | 2019-01-28 | 数据查询方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109800237A true CN109800237A (zh) | 2019-05-24 |
Family
ID=66559087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910082314.3A Pending CN109800237A (zh) | 2019-01-28 | 2019-01-28 | 数据查询方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800237A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970870A (zh) * | 2014-05-12 | 2014-08-06 | 华为技术有限公司 | 数据库查询方法和服务器 |
CN104112024A (zh) * | 2014-07-30 | 2014-10-22 | 北京锐安科技有限公司 | 数据库的高性能查询方法和装置 |
CN104537030A (zh) * | 2014-12-22 | 2015-04-22 | 华为技术有限公司 | 一种业务数据查询方法及装置、数据库系统 |
US20160055156A1 (en) * | 2014-08-22 | 2016-02-25 | International Business Machines Corporation | Database query caching and reuse |
CN107679218A (zh) * | 2017-10-17 | 2018-02-09 | 九州通医疗信息科技(武汉)有限公司 | 基于内存的搜索方法及装置 |
CN107844488A (zh) * | 2016-09-18 | 2018-03-27 | 北京京东尚科信息技术有限公司 | 数据查询方法和装置 |
-
2019
- 2019-01-28 CN CN201910082314.3A patent/CN109800237A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970870A (zh) * | 2014-05-12 | 2014-08-06 | 华为技术有限公司 | 数据库查询方法和服务器 |
CN104112024A (zh) * | 2014-07-30 | 2014-10-22 | 北京锐安科技有限公司 | 数据库的高性能查询方法和装置 |
US20160055156A1 (en) * | 2014-08-22 | 2016-02-25 | International Business Machines Corporation | Database query caching and reuse |
CN104537030A (zh) * | 2014-12-22 | 2015-04-22 | 华为技术有限公司 | 一种业务数据查询方法及装置、数据库系统 |
CN107844488A (zh) * | 2016-09-18 | 2018-03-27 | 北京京东尚科信息技术有限公司 | 数据查询方法和装置 |
CN107679218A (zh) * | 2017-10-17 | 2018-02-09 | 九州通医疗信息科技(武汉)有限公司 | 基于内存的搜索方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232048A (zh) | 日志文件的获取方法、装置及存储介质 | |
CN108595239A (zh) | 图片处理方法、装置、终端及计算机可读存储介质 | |
US9760998B2 (en) | Video processing method and apparatus | |
CN109168073A (zh) | 直播间封面显示的方法和装置 | |
CN109656930A (zh) | 数据查询方法、装置及系统 | |
CN109327608A (zh) | 歌曲分享的方法、终端、服务器和系统 | |
CN109922356A (zh) | 视频推荐方法、装置和计算机可读存储介质 | |
CN109147757A (zh) | 歌声合成方法及装置 | |
CN109068008A (zh) | 铃声设置方法、装置、终端及存储介质 | |
CN108132790A (zh) | 检测无用代码的方法、装置及计算机存储介质 | |
CN109192218A (zh) | 音频处理的方法和装置 | |
CN109254775A (zh) | 基于人脸的图像处理方法、终端及存储介质 | |
CN109218751A (zh) | 推荐音频的方法、装置及系统 | |
CN110119243A (zh) | 指令处理方法、装置、终端和存储介质 | |
CN110535890A (zh) | 文件上传的方法和装置 | |
CN109102811A (zh) | 音频指纹的生成方法、装置及存储介质 | |
CN110471614B (zh) | 一种存储数据的方法、检测终端的方法及装置 | |
CN109783176A (zh) | 切换页面的方法和装置 | |
CN109308265A (zh) | 生成反向测试用例的方法和装置 | |
CN108495183A (zh) | 显示专辑信息的方法和装置 | |
CN109189290A (zh) | 点击区域识别方法、装置和计算机可读存储介质 | |
CN110737692A (zh) | 一种检索数据的方法、建立索引库的方法及装置 | |
CN109089137A (zh) | 卡顿检测方法及装置 | |
CN107943484A (zh) | 执行业务功能的方法和装置 | |
CN109033473A (zh) | 图片分享方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190524 |
|
RJ01 | Rejection of invention patent application after publication |