CN111125148A - 一种数据库的分页查询方法及装置 - Google Patents
一种数据库的分页查询方法及装置 Download PDFInfo
- Publication number
- CN111125148A CN111125148A CN201911277937.2A CN201911277937A CN111125148A CN 111125148 A CN111125148 A CN 111125148A CN 201911277937 A CN201911277937 A CN 201911277937A CN 111125148 A CN111125148 A CN 111125148A
- Authority
- CN
- China
- Prior art keywords
- query
- paging
- database
- page
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库的分页查询方法及装置,方法包括:获取数据库数据以及分页查询的查询语句;若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;在所述至少一页的记录数据中,执行查询操作。本发明的方案极大的提升了数据库的查询效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库的分页查询方法及装置。
背景技术
目前跟sqltoy-orm类似的技术框架有mybatis和hibernate,针对分页mybatis通过pageHelper(页帮助)插件来实现,但这些框架都是仅仅提供了普通的分页机制,实际开发过程中会存在类似的做法,但都是基于程序员自行编码控制,不具有通用型。
现有技术一般只实现了不同数据库方言的分页查询基本封装,根本就没有针对分页的极限性能优化思考,主要有以下问题:
1.没有对取总记录数的sql(结构化查询语言)进行优化,避免不必要的性能浪费。
2.没有在架构层面提供快速分页的机制,唯有开发者自行实现,对开发者的技能要求非常高,要理解数据库方言分页语法,极大的增加了开发复杂度。
3.也就是说目前根本就没有类似于sqltoy-orm快速分页的框架产品。
发明内容
本发明实施例提供了一种数据库的分页查询方法及装置。极大的提升了数据库的查询效率。
为解决上述技术问题,本发明的实施例提供如下技术方案:
一种数据库的分页查询方法,包括:
获取数据库数据以及分页查询的查询语句;
若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;
在所述至少一页的记录数据中,执行查询操作。
可选的,分页查询的查询语句为基于sqltoy-orm的结构化查询语言SQL语句,所述sqltoy-orm是基于java的ORM框架。
可选的,所述预设标记信息为@fast()。
可选的,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据,包括:
按照所述@fast(),将所述数据库数据中的记录进行分页,获得至少一页的记录数据。
可选的,在所述至少一页的记录数据中,执行查询操作,包括:
在所述至少一页的记录数据中,执行表关联查询操作。
本发明的实施例还提供一种数据库的分页查询装置,包括:
获取模块,用于获取数据库数据以及分页查询的查询语句;
分页模块,用于若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;
查询模块,用于在所述至少一页的记录数据中,执行查询操作。
可选的,分页查询的查询语句为基于sqltoy-orm的结构化查询语言SQL语句,所述sqltoy-orm是基于java的ORM框架。
可选的,所述预设标记信息为@fast()。
可选的,所述分页模块具体用于:按照所述@fast(),将所述数据库数据中的记录进行分页,获得至少一页的记录数据。
可选的,所述查询模块具体用于:在所述至少一页的记录数据中,执行表关联查询操作。
本发明的实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有处理器可执行指令,所述处理器可执行指令用于使所述处理器执行如上所述的方法。
本发明实施例的有益效果是:
本发明的上述实施例中,通过获取数据库数据以及分页查询的查询语句;
若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;在所述至少一页的记录数据中,执行查询操作。将快速分页的理念融入到基础ORM框架中,为开发者提供了分页查询性能极限优化的策略。性能成几何级提升,数据范围越大性能体现的越明显,极大的提升了用户体验。极大的提升了数据库的吞吐量,因为性能的提升,每次请求响应时间大幅变短,提升了数据库的利用率。
附图说明
图1为本发明的实施例数据库的分页查询方法流程示意图;
图2为本发明的实施例分页的示意图;
图3为本发明的实施例数据库的分页查询方法的一具体流程示意图;
图4为本发明的实施例数据库的分页查询装置的模块框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
如图1所示,本发明的实施例提供一种数据库的分页查询方法,包括:
步骤11,获取数据库数据以及分页查询的查询语句;
步骤12,若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;
步骤13,在所述至少一页的记录数据中,执行查询操作。
本发明的该实施例将快速分页的理念融入到基础ORM框架中,为开发者提供了分页查询性能极限优化的策略。性能成几何级提升,数据范围越大性能体现的越明显,极大的提升了用户体验。极大的提升了数据库的吞吐量,因为性能的提升,每次请求响应时间大幅变短,提升了数据库的利用率。
本发明的一可选的实施例中,分页查询的查询语句为基于sqltoy-orm的结构化查询语言SQL语句,所述Sqltoy-orm是基于java的ORM框架。
Sqltoy-orm快速分页应用于java开发语言的数据库交互领域,主要应用于各类业务数据的分页查询,分页展示数据集合如图2所示。本发明的一可选的实施例中,所述预设标记信息为@fast()。利用@fast()标记分页语句片段,然后通过数据库方言组织分页语句,实现先取一页的记录(如:10条),然后将10条记录去进行表关联查询,实现性能的大幅提升。
本发明的一可选的实施例中,上述步骤12可以包括:按照所述@fast(),将所述数据库数据中的记录进行分页,获得至少一页的记录数据。
本发明的一可选的实施例中,上述步骤13可以包括:在所述至少一页的记录数据中,执行表关联查询操作。
具体实现时,Sqltoy的分页如下:
Select t1.*,t2.ORGAN_NAME
--@fast()实现先分页取10条(具体数量由Pagesize确定),然后再和机构表关联;
From@fast(Select t.*
From sqltoy_staff_info t
Where t.STATUS=1
#[and t.STAFF_NAME like:staffName]
Order by t.ENTRY_DATE desc
)t1
Left join sqltoy_organ_info t2
On t1.organ_id=t2.ORGAN_TD
最终查询的语句如下:
Select t.*,t2.ORGAN_NAME
From(Select t.*
From sqltoy_staff_info t
Where t.STATUS=1
#[and t.STAFF_NAME like:staffName]
Order by t.ENTRY_DATE desc
Limit:start,:pagesize
)t1
Left join sqltoy_organ_info t2
On t1.organ_id=t2.ORGAN_TD
本发明的上述实施例的具体实现流程图如图3所示,通过sqltoy-orm利用@fast()模式优雅的融合在sql(结构化查询语言)中,标记出先分页的语句片段。先分页后关联模式,实现了先分页缩小数据范围,用小数据范围再关联的模式大幅提升数据查询性能。
本发明的上述实施例将快速分页的理念融入到基础ORM框架中,为开发者提供了分页查询性能极限优化的策略。性能成几何级提升,数据范围越大性能体现的越明显,极大的提升了用户体验。极大的提升了数据库的吞吐量,因为性能的提升,每次请求响应时间大幅变短,提升了数据库的利用率。
如图4所示,本发明的实施例还提供一种数据库的分页查询装置40,所述装置包括:
获取模块41,用于获取数据库数据以及分页查询的查询语句;
分页模块42,用于若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;
查询模块43,用于在所述至少一页的记录数据中,执行查询操作。
可选的,分页查询的查询语句为基于sqltoy-orm的结构化查询语言SQL语句,所述sqltoy-orm是基于java的ORM框架。
可选的,所述预设标记信息为@fast()。
可选的,所述分页模块42具体用于:按照所述@fast(),将所述数据库数据中的记录进行分页,获得至少一页的记录数据。
可选的,所述查询模块43具体用于:在所述至少一页的记录数据中,执行表关联查询操作。
需要说明的是,该实施例中的装置是与上述图1所示的方法对应的装置,上述各实施例中的实现方式均适用于该装置的实施例中,也能达到相同的技术效果。在此需要说明的是,本发明实施例提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本发明的实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有处理器可执行指令,所述处理器可执行指令用于使所述处理器执行如上所述的方法。上述图1的方法的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
本发明的上述实施例通过sqltoy-orm利用@fast()模式优雅的融合在sql中,标记出先分页的语句片段。先分页后关联模式:实现了先分页缩小数据范围,用小数据范围再关联的模式大幅提升数据查询性能。将快速分页的理念融入到基础ORM框架中,为开发者提供了分页查询性能极限优化的策略。性能成几何级提升,数据范围越大性能体现的越明显,极大的提升了用户体验。极大的提升了数据库的吞吐量,因为性能的提升,每次请求响应时间大幅变短,提升了数据库cpu的利用率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。
Claims (11)
1.一种数据库的分页查询方法,其特征在于,所述方法包括:
获取数据库数据以及分页查询的查询语句;
若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;
在所述至少一页的记录数据中,执行查询操作。
2.根据权利要求1所述的数据库的分页查询方法,其特征在于,分页查询的查询语句为基于sqltoy-orm的结构化查询语言SQL语句,所述sqltoy-orm是基于java的ORM框架。
3.根据权利要求2所述的数据库的分页查询方法,其特征在于,所述预设标记信息为@fast()。
4.根据权利要求3所述的数据库的分页查询方法,其特征在于,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据,包括:
按照所述@fast(),将所述数据库数据中的记录进行分页,获得至少一页的记录数据。
5.根据权利要求4所述的数据库的分页查询方法,其特征在于,在所述至少一页的记录数据中,执行查询操作,包括:
在所述至少一页的记录数据中,执行表关联查询操作。
6.一种数据库的分页查询装置,其特征在于,所述装置包括:
获取模块,用于获取数据库数据以及分页查询的查询语句;
分页模块,用于若所述分页查询的查询语句中包括预设标记信息,按照所述预设标记信息,将所述数据库数据进行分页,获得至少一页的记录数据;
查询模块,用于在所述至少一页的记录数据中,执行查询操作。
7.根据权利要求6所述的数据库的分页查询装置,其特征在于,分页查询的查询语句为基于sqltoy-orm的结构化查询语言SQL语句,所述sqltoy-orm是基于java的ORM框架。
8.根据权利要求7所述的数据库的分页查询装置,其特征在于,所述预设标记信息为@fast()。
9.根据权利要求8所述的数据库的分页查询装置,其特征在于,所述分页模块具体用于:按照所述@fast(),将所述数据库数据中的记录进行分页,获得至少一页的记录数据。
10.根据权利要求9所述的数据库的分页查询装置,其特征在于,所述查询模块具体用于:在所述至少一页的记录数据中,执行表关联查询操作。
11.一种处理器可读存储介质,其特征在于,所述处理器可读存储介质存储有处理器可执行指令,所述处理器可执行指令用于使所述处理器执行权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911277937.2A CN111125148B (zh) | 2019-12-12 | 2019-12-12 | 一种数据库的分页查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911277937.2A CN111125148B (zh) | 2019-12-12 | 2019-12-12 | 一种数据库的分页查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125148A true CN111125148A (zh) | 2020-05-08 |
CN111125148B CN111125148B (zh) | 2023-07-07 |
Family
ID=70498552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911277937.2A Active CN111125148B (zh) | 2019-12-12 | 2019-12-12 | 一种数据库的分页查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125148B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064819A1 (en) * | 2002-09-30 | 2004-04-01 | Ibm Corporation | N-source in-kernel cache for high performance in computer operating systems |
WO2017133538A1 (zh) * | 2016-02-05 | 2017-08-10 | 中兴通讯股份有限公司 | 一种实现数据查询的方法和服务器 |
CN109313642A (zh) * | 2018-09-07 | 2019-02-05 | 威富通科技有限公司 | 账单信息缓存方法、账单信息查询方法和终端设备 |
CN109542933A (zh) * | 2018-12-03 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种数据库查询方法、装置、设备及介质 |
-
2019
- 2019-12-12 CN CN201911277937.2A patent/CN111125148B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064819A1 (en) * | 2002-09-30 | 2004-04-01 | Ibm Corporation | N-source in-kernel cache for high performance in computer operating systems |
WO2017133538A1 (zh) * | 2016-02-05 | 2017-08-10 | 中兴通讯股份有限公司 | 一种实现数据查询的方法和服务器 |
CN109313642A (zh) * | 2018-09-07 | 2019-02-05 | 威富通科技有限公司 | 账单信息缓存方法、账单信息查询方法和终端设备 |
CN109542933A (zh) * | 2018-12-03 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种数据库查询方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
张素智;刘中峰;: "基于ASP.NET的Web数据分页实现与性能优化" * |
杜娟;: "Web数据库查询定位技术" * |
Also Published As
Publication number | Publication date |
---|---|
CN111125148B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536761B (zh) | 报表数据查询方法及服务器 | |
CN111813963B (zh) | 知识图谱构建方法、装置、电子设备及存储介质 | |
CA2684822C (en) | Data transformation based on a technical design document | |
CN109524070B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN112115152B (zh) | 数据增量更新及查询方法、装置、电子设备及存储介质 | |
CN111126019B (zh) | 基于模式定制的报表生成方法、装置和电子设备 | |
CN111177113B (zh) | 数据迁移方法、装置、计算机设备和存储介质 | |
CN108241529B (zh) | 薪资计算方法、应用服务器及计算机可读存储介质 | |
CN113268500B (zh) | 业务处理方法、装置及电子设备 | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
CN110795697A (zh) | 逻辑表达式的获取方法、装置、存储介质以及电子装置 | |
CN109828759A (zh) | 代码编译方法、装置、计算机装置及存储介质 | |
CN110806866A (zh) | 一种前端管理系统的生成方法及装置 | |
CN104346378B (zh) | 一种实现复杂数据处理的方法、装置及系统 | |
CN112130849B (zh) | 代码自动生成方法及装置 | |
CN110633258A (zh) | 日志插入方法、装置、计算机装置及存储介质 | |
WO2014055438A1 (en) | Reference data segmentation from single to multiple tables | |
CN113609128A (zh) | 生成数据库实体类的方法、装置、终端设备及存储介质 | |
WO2019071899A1 (zh) | 电子装置、车辆数据导入方法及存储介质 | |
CN109918389B (zh) | 基于消息流和图数据库的数据风控方法、装置及存储介质 | |
CN116227454A (zh) | 一种通用的自动化报告生成方法及系统 | |
CN111125148A (zh) | 一种数据库的分页查询方法及装置 | |
CN115310127A (zh) | 一种数据脱敏方法及装置 | |
CN109492057A (zh) | 一种教育系统的用于Hive离线计算方法及电子设备 | |
CN114968725A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |