CN103678634A - 一种提高J-Hi开源开发平台中数据查询速度的方法 - Google Patents
一种提高J-Hi开源开发平台中数据查询速度的方法 Download PDFInfo
- Publication number
- CN103678634A CN103678634A CN201310705231.8A CN201310705231A CN103678634A CN 103678634 A CN103678634 A CN 103678634A CN 201310705231 A CN201310705231 A CN 201310705231A CN 103678634 A CN103678634 A CN 103678634A
- Authority
- CN
- China
- Prior art keywords
- database
- index
- query
- data
- configuration file
- 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
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/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/21—Design, administration or maintenance of databases
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种提高J-Hi开源开发平台数据查询速度的方法,其步骤包括:1)创建多数据库配置文件,并配置多个数据库;2)为查询条件字段建立索引;3)从所述配置文件中获取数据库连接,运行SQL语句并对SQL语句进行备注,以直接根据所述索引进行数据查询,并输出查询结果。本发明在已有产品J-Hi开发平台的基础上,扩展了多数据库配置连接、使用了强制索引及分页查询的方法来提高大数据量下的数据查询速度,优化了J-Hi开发平台的数据库连接部分的性能,实现了J-Hi开发平台中大数据量下多库查询与查询结果迅速展示,提高了大数据量下的查询速度,从而提高了系统性能也能增强用户体验。
Description
技术领域
本发明属于信息技术领域,涉及一种提高J-Hi开源开发平台中数据查询速度的方法。
背景技术
作为一款JAVA WEB应用软件快速开发开源平台,J-HI主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的一站式的JAVA WEB应用软件快速开发解决方案。通过技术路线我们会发现无论是软件还是硬件,如今的系统越来越高精密,越来越复杂,需要掌握的知识也越来越多。J-HI平台本身就定位在“大规模集成”这一环节上,目的是将主流的框架集成于该平台当中,为用户呈显一个高效、稳定、可复用、低耦合、通用化并且功能齐全、用户体验友好的套件产品。
J-HI平台的目的就是通过平台的集成能力,化繁为简。从而提高开发效率,让软件工程师将主要的精力放在最核心的业务逻辑上,而非写一堆的POJO类或页面导航的配置文件这些索然无味又没有技术含量的工作中。
J-Hi开发平台的持久层采用Hibernate和Ibatis开发框架,虽然配置方便,能简化开发程序,但是在大数据量下缺陷凸显,查询速度极其缓慢,同时也不支持多数据库查询,只能配置单一数据库。在数据量千万以上,需要进行多数据库数据的操作时,这种固定的开发就不能满足开发人员的需求了。
发明内容
本发明的目的是提供一种在J-Hi平台中能支持多数据库查询,及加快大数据量查询速度的开发方法。
为实现上述目的,本发明采用的技术方案如下:
一种提高J-Hi开源开发平台数据查询速度的方法,其步骤包括:
1)创建多数据库配置文件,并使用该配置文件配置多个数据库;
2)为进行查询的数据表中作为查询条件的字段建立索引;
3)从所述配置文件中获取数据库连接,运行SQL语句并对SQL语句进行备注,以直接根据所述索引进行数据查询,并输出查询结果。
进一步地,步骤1)所述配置多个数据库,包括数据库驱动、数据库地址、用户名及密码的配置。
进一步地,步骤3)使用JDBC连接获取所述数据库连接。
进一步地,步骤3)对SQL语句进行备注的方法为:在查询的sql语句中的select后增加/*+index(Index_name)*/代码。
进一步地,步骤3)对数据进行分页查询以缩短页面展示时间。
进一步地,步骤3)每次只取40~100条的数据进行查询。
本发明方法为查询条件字段建立索引,大数据量下,数据库进行查询的数据表中作为查询条件的字段建立索引后可加快查询速度;通过在查询中对SQL语句进行备注,强制查询过程走所建立的索引,即可发挥索引的功用;同时对数据进行分页查询,缩短了页面展示的时间。本发明在已有产品J-Hi开发平台的基础上,扩展了多数据库配置连接、使用了强制索引及分页查询的方法来提高大数据量下的数据查询速度,优化了J-Hi开发平台的数据库连接部分的性能,实现了J-Hi开发平台中大数据量下多库查询与查询结果迅速展示。
与现有的J-Hi开发平台的数据库连接技术相比,本发明通过建立查询条件字段索引及查询时SQL语句加注释使得查询时强制使用索引,提高了大数据量下的查询速度,从而提高了系统性能也能增强用户体验。同时本发明的方法简单,易于掌握,对快速开发没有任何影响。
附图说明
图1是实施例中提高J-Hi开源开发平台数据查询速度的方法的步骤流程图。
具体实施方式
下面通过具体实施例和附图,对本发明做详细的说明。
本发明的提高J-Hi开源开发平台数据查询速度的方法,其流程如图1所示,具体包括如下步骤:
1)创建多数据库配置文件,并使用该配置文件配置多个数据库
在项目的src目录下创建一个自定义的properties后缀的文件,内容为Java连接数据库的配置代码,包括数据库驱动、数据库地址、用户名及密码的配置。以oracle为例列出两个数据库配置的代码,更多个数据库可以再增加,代码如下:
#oracle的数据库A的配置
url.a=jdbc:oracle:thin:192.168.3.1:1521:orcl
username.a=user1
driver.a=oracle.jdbc.driber.OracleDriver
password.a=user1pw
#oracle的数据库B的配置
url.b=jdbc:oracle:thin:192.168.3.2:1521:orcl
username.b=user2
driver.b=oracle.jdbc.driber.OracleDriver
password.b=user2pw
所述配置多个数据库,如数据库列表时,具体配置方法为:
#配置oracle数据库列表
dbs1id=01,02,03
dbs1name=数据库1,数据库2,数据库3
#数据库1配置
url.01=jdbc:oracle:thin:192.168.3.1:1521:orcl
username.01=user1
driver.01=oracle.jdbc.driber.OracleDriver
password.01=user1pw
#数据库2配置
url.02=jdbc:oracle:thin:192.168.3.2:1521:orcl
username.02=user2
driver.02=oracle.jdbc.driber.OracleDriver
password.02=user2pw
#数据库3配置
url.03=jdbc:oracle:thin:192.168.3.3:1521:orcl
username.03=user3
driver.03=oracle.jdbc.driber.OracleDriver
password.03=user3pw
上面的例子里列出三个数据库列表的配置,更多个数据库时可继续增加。
2)为查询条件字段建立索引
建立索引的具体步骤:
在数据中对所选数据库表创建索引,以oracle数据库为例,sql代码如下:
create index index_name on table_name(column_name);
举例:
首先创建学生信息的数据库表:
对于学生信息表,在查询条件为Id和name两个字段时,为这两个字段创建索引:
create index index_id on student (id);
create index index_name on student (name);
create index index_id_name on student (id,name);
3)获取数据库连接,直接运行SQL语句进行数据查询
使用JDBC连接从所述配置文件中获取数据库连接。JDBC(Java Data BaseConnectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。本实施例中首先从配置文件中读取数据库相关的配置,包括数据库驱动、数据库地址、用户名及密码,然后根据这些配置,通过使用JDBC连接数据库。
在查询过程中对SQL语句进行备注,以强制根据所述索引进行查询,并输出查询结果。对SQL语句进行备注的方法为:在查询的sql语句中的“select”后增加/*+index(Index_name)*/代码。
以步骤2)的数据库表student为例,查询条件为name时,使用下面的sql语句:
select/*+index(index_name)*/*from student where name=‘李强’
4)对数据进行分页查询以缩短页面展示时间
对查询的数据结果进行分页的方法:
在查询时仅获取部分数据,如每次只取40~100条的数据进行查询,可以在查询的sql语句中进行限制,每次只取40~100条数据,以oracle数据库为例,具体的sql语句为:
select*from student where rowid in(select rid from(select rownum rn,rid from(select rowidrid,id from student order by id desc)where rownum<10001)where rn>9960)order by id desc;
本实施例以步骤2)中的学生表做实验,数据库中student表中有一亿条数据,查询学生姓名为“李强”,数据库中有3万查询结果,查询所用时间如表1所示。可以看出,通过建立查询条件字段索引及查询时SQL语句加注释使得查询时强制使用索引,有效提高了大数据量下的查询速度,尤其对于有索引有分页的情况,更能够大幅减少查询时间,证明了本发明方法的优越性。
表1.查询时间列表
实验数据中的时间为J-hi开发平台上开发的系统的页面上提交查询表单,到页面上展示查询结果的时间。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (8)
1.一种提高J-Hi开源开发平台数据查询速度的方法,其步骤包括:
1)创建多数据库配置文件,并使用该配置文件配置多个数据库;
2)为进行查询的数据表中作为查询条件的字段建立索引;
3)从所述配置文件中获取数据库连接,运行SQL语句并对SQL语句进行备注,以直接根据所述索引进行数据查询,并输出查询结果。
2.如权利要求1所述的方法,其特征在于:步骤1)所述配置多个数据库,包括数据库驱动、数据库地址、用户名及密码的配置。
3.如权利要求1所述的方法,其特征在于:步骤1)所述配置文件是在项目的src目录下创建的自定义的properties后缀的文件,内容为Java连接数据库的配置代码。
4.如权利要求1所述的方法,其特征在于:步骤1)所述数据库为oracle类型的数据库。
5.如权利要求1所述的方法,其特征在于:步骤3)使用JDBC连接从所述配置文件获取数据库连接。
6.如权利要求1所述的方法,其特征在于,步骤3)对SQL语句进行备注的方法为:在查询的sql语句中的select后增加/*+index(Index_name)*/代码。
7.如权利要求1所述的方法,其特征在于:步骤3)对数据进行分页查询以缩短页面展示时间。
8.如权利要求7所述的方法,其特征在于:步骤3)每次只取40~100条的数据进行查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310705231.8A CN103678634A (zh) | 2013-12-19 | 2013-12-19 | 一种提高J-Hi开源开发平台中数据查询速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310705231.8A CN103678634A (zh) | 2013-12-19 | 2013-12-19 | 一种提高J-Hi开源开发平台中数据查询速度的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103678634A true CN103678634A (zh) | 2014-03-26 |
Family
ID=50316179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310705231.8A Pending CN103678634A (zh) | 2013-12-19 | 2013-12-19 | 一种提高J-Hi开源开发平台中数据查询速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678634A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550354A (zh) * | 2015-12-29 | 2016-05-04 | 珠海金山网络游戏科技有限公司 | 一种配置文件管理的方法和系统 |
CN107180110A (zh) * | 2017-06-13 | 2017-09-19 | 北京京润恒远科技有限公司 | 一种基于DataTable的高效数据库接口的实现方法 |
CN107239568A (zh) * | 2017-06-27 | 2017-10-10 | 石化盈科信息技术有限责任公司 | 分布式索引实现方法及装置 |
CN107992516A (zh) * | 2017-10-27 | 2018-05-04 | 平安科技(深圳)有限公司 | 电子装置、数据查询的方法及存储介质 |
CN111625557A (zh) * | 2020-04-07 | 2020-09-04 | 上海熙菱信息技术有限公司 | 一种百亿级数据量多条件快速结果估算的方法 |
CN111737336A (zh) * | 2020-07-30 | 2020-10-02 | 湖南中车时代通信信号有限公司 | 一种数据库及轨道交通信号系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1256889A2 (en) * | 2001-05-08 | 2002-11-13 | Solid Information Technology Oy | Method and arrangement for the management of database schemas |
CN101187937A (zh) * | 2007-10-30 | 2008-05-28 | 北京航空航天大学 | 网格环境下模式复用的异构数据库访问和集成方法 |
CN101196926A (zh) * | 2007-12-29 | 2008-06-11 | 中国建设银行股份有限公司 | 一种数据库访问平台及其访问方法 |
CN102004634A (zh) * | 2009-09-01 | 2011-04-06 | 上海杉达学院 | 分层的业务管理系统 |
CN103207908A (zh) * | 2013-03-29 | 2013-07-17 | 成都康赛电子科大信息技术有限责任公司 | 多数据源动态隔离访问方法 |
-
2013
- 2013-12-19 CN CN201310705231.8A patent/CN103678634A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1256889A2 (en) * | 2001-05-08 | 2002-11-13 | Solid Information Technology Oy | Method and arrangement for the management of database schemas |
CN101187937A (zh) * | 2007-10-30 | 2008-05-28 | 北京航空航天大学 | 网格环境下模式复用的异构数据库访问和集成方法 |
CN101196926A (zh) * | 2007-12-29 | 2008-06-11 | 中国建设银行股份有限公司 | 一种数据库访问平台及其访问方法 |
CN102004634A (zh) * | 2009-09-01 | 2011-04-06 | 上海杉达学院 | 分层的业务管理系统 |
CN103207908A (zh) * | 2013-03-29 | 2013-07-17 | 成都康赛电子科大信息技术有限责任公司 | 多数据源动态隔离访问方法 |
Non-Patent Citations (6)
Title |
---|
(美)CHRISTOPHER LAWSON: ""12.1.3 优化器模式提示"", 《ORACLE性能优化科学与艺术》 * |
(美)DONALD K.BURLESON: ""3.连接索引提示使用CTAS"", 《ORACLE9I STATSPACK高性能调整》 * |
孙风栋 等: "《Oracle 10g 数据库海量数据分页查询优化》", 《计算机应用与软件》 * |
张辉 等: "《基于 Oracle 数据库海量数据的查询优化研究》", 《计算机技术与发展》 * |
林超: "《SQL Server 6. 5的表扫描和索引访问性能比较》", 《小型微型计算机系统》 * |
魏彬: "《ORACLE SQL 语句执行效率研究》", 《内蒙古科技与经济》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550354A (zh) * | 2015-12-29 | 2016-05-04 | 珠海金山网络游戏科技有限公司 | 一种配置文件管理的方法和系统 |
CN105550354B (zh) * | 2015-12-29 | 2019-05-31 | 珠海金山网络游戏科技有限公司 | 一种配置文件管理的方法和系统 |
CN107180110A (zh) * | 2017-06-13 | 2017-09-19 | 北京京润恒远科技有限公司 | 一种基于DataTable的高效数据库接口的实现方法 |
CN107239568A (zh) * | 2017-06-27 | 2017-10-10 | 石化盈科信息技术有限责任公司 | 分布式索引实现方法及装置 |
CN107239568B (zh) * | 2017-06-27 | 2020-04-14 | 石化盈科信息技术有限责任公司 | 分布式索引实现方法及装置 |
CN107992516A (zh) * | 2017-10-27 | 2018-05-04 | 平安科技(深圳)有限公司 | 电子装置、数据查询的方法及存储介质 |
CN111625557A (zh) * | 2020-04-07 | 2020-09-04 | 上海熙菱信息技术有限公司 | 一种百亿级数据量多条件快速结果估算的方法 |
CN111625557B (zh) * | 2020-04-07 | 2023-04-14 | 上海熙菱信息技术有限公司 | 一种百亿级数据量多条件快速结果估算的方法 |
CN111737336A (zh) * | 2020-07-30 | 2020-10-02 | 湖南中车时代通信信号有限公司 | 一种数据库及轨道交通信号系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678634A (zh) | 一种提高J-Hi开源开发平台中数据查询速度的方法 | |
Aboutorabiª et al. | Performance evaluation of SQL and MongoDB databases for big e-commerce data | |
CN107463637A (zh) | 一种分布式NewSQL数据库系统和数据储存方法 | |
CN103020301B (zh) | 一种多维度数据查询和存储方法及系统 | |
CN101789021A (zh) | 一种通用可配置的数据库数据迁移方法 | |
CN106777108A (zh) | 一种基于混合存储架构的数据查询方法和装置 | |
CN103473267A (zh) | 数据存储查询方法及系统 | |
Zhao et al. | Multiple nested schema of HBase for migration from SQL | |
CN111382226A (zh) | 一种数据库查询检索方法、装置和电子设备 | |
CN103729453A (zh) | 一种HBase表联合查询优化的方法 | |
Zheng et al. | A data storage architecture supporting multi-level customization for saas | |
CN105302869A (zh) | 一种HBase二级索引查询和存储系统及其查询方法 | |
CN105022791A (zh) | 一种新型的kv分布式数据存储方法 | |
CN103853773A (zh) | 一种Mysql数据库下树形数据结构的检索方法 | |
Zou et al. | From a stream of relational queries to distributed stream processing | |
CN105447105A (zh) | 基于NoSQL的分布式物联网数据的单字段区间索引查询方式 | |
CN103177016B (zh) | 关系型数据库访问方法和装置 | |
CN103177046B (zh) | 一种基于行存储数据库的数据处理方法和设备 | |
Grefenstette et al. | Search Based Applications | |
CN102222097A (zh) | 复杂sql语句的生成方法 | |
Qin et al. | The performance of sql-on-hadoop systems-an experimental study | |
CN105574027A (zh) | 基于oltp/olap混合应用下多维度性能数据存储方法、装置及系统 | |
CN104714956A (zh) | 一种异构记录集对比方法及装置 | |
Lu et al. | A survey of mapreduce based parallel processing technologies | |
CN104252357A (zh) | 一种sql语言解析方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140326 |