CN106844589A - 数据库数据异步存储方法和系统 - Google Patents
数据库数据异步存储方法和系统 Download PDFInfo
- Publication number
- CN106844589A CN106844589A CN201710018729.5A CN201710018729A CN106844589A CN 106844589 A CN106844589 A CN 106844589A CN 201710018729 A CN201710018729 A CN 201710018729A CN 106844589 A CN106844589 A CN 106844589A
- Authority
- CN
- China
- Prior art keywords
- database
- buffering queue
- statement
- database statement
- 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.)
- Pending
Links
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/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于数据库系统的存储领域,揭示了一种数据库数据异步存储的方法和系统,所述方法包括以下步骤:系统初始化;开启多个线程及多个缓冲队列;生成数据库语句;将数据库语句放入缓冲队列;控制工作线程将缓冲队列的数据库语句写入数据库系统;系统结束。本发明通过增加多线程及多缓冲队列能够提高数据处理速度从而提高数据库数据异步存储的速度。
Description
技术领域
本发明涉及到数据库的数据存储方法,特别是涉及到一种数据库数据异步存储方法和系统。
背景技术
现有技术中,数据库异步存储就是把将要写数据库的记录放到某一个指定的缓冲区,另外一个独立的线程或进程将此缓冲区的记录取出写进数据库,但这种方式通常是一个线程或进程去处理,处理效率低。
发明内容
本发明的主要目的为提供一种数据库数据异步存储方法,可以定义多个工作线程和多个缓冲区提高处理效率以解决上述背景技术中提出的问题。
本发明提供一种数据库数据异步存储的方法,包括步骤:
开启多个工作线程及对应的缓冲队列;
将数据库语句放入所述缓冲队列;
控制数据库语句写入数据库系统。
进一步地,所述将数据库语句放入缓冲队列的步骤包括:将有外键约束相关的数据库语句放入同一个缓冲队列。
进一步地,所述控制数据库语句写入数据库系统的步骤前包括步骤:控制所述工作线程将数据库语句从缓冲队列中取出。
进一步地,所述控制所述工作线程将数据库语句从缓冲队列中取出的步骤包括:将该缓冲队列内有外键约束相关的数据库语句相邻取出。
进一步地,所述将数据库语句放入所述缓冲队列的步骤前包括步骤:接收数据库信息;根据数据库信息生成数据库语句。
一种数据库数据异步存储系统,包括模块:开启模块,用于开启多个工作线程及对应的缓冲队列;放入模块,用于将数据库语句放入所述缓冲队列;写入模块,用于将数据库语句写入数据库系统。
进一步地,所述放入模块包括:外键子模块,用于将有外键约束相关的数据库语句放入同一个缓冲队列。
进一步地,还包括取出模块,用于控制所述工作线程将数据库语句从缓冲队列中取出。
进一步地,所述取出模块包括:相邻取出子模块,用于将该缓冲队列内有外键约束相关的数据库语句相邻取出。
进一步地,还包括接收模块,用于设置接收数据库信息;生成模块,用于根据数据库信息生成数据库语句。
与现有技术相比,本发明的有益效果是:通过定义多个线程和缓冲队列,让多个线程同时工作,提高了写入速度和效率。在数据进入缓冲队列前通过数据库语句的外键约束,更方便数据库系统的写入。
附图说明
图1是本发明的一实施例的数据库数据异步存储方法步骤流程图;
图2是本发明的一实施例的数据库数据异步存储系统模块结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,提出本发明一实施例的数据库数据异步存储方法,包括步骤:
S1、开启多个工作线程及对应的缓冲队列;
S4、将数据库语句放入上述缓冲队列;
S6、控制数据库语句写入上述数据库系统。
本实施例中,工作线程是执行程序的最小单元。通过开启多个工作线程从而增加多个处理路径,加快数据处理的速度,提高数据的存储速度。缓冲队列是用作工作线程的处理空间,通过设置每个工作线程对应一个缓冲队列,可以让每个工作线程处理数据的任务量小,使处理任务相对简洁单一,更能提高数据的处理速度。
本实施例中,上述将数据库语句放入缓冲队列的步骤S4包括:
选择将有外键约束相关的数据库语句放入同一个缓冲队列。
本实施例中,外键又叫关键字,是计算机语言中的一个常用词语。外键表示两个数据库语句之间的相关联系。例如一个企业的职工基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)有关系中,“职工号”是主键,“张三”属性表示该职工所在编辑的姓名的职工号,它引用了本关系中的“职工号”属性,因此“姓名”是外键。外键约束用于保持数据的一致性和完整性,有外键约束相关的数据库语句放入同一个缓冲队列,可以加快数据库语句进入数据库系统的速度。例如将所有的包含有“姓名”的数据库语句全部放入到同一个缓冲队列里面。
本实施例中,上述控制数据库语句写入数据库系统的步骤S6前包括步骤:
S5、控制上述工作线程将数据库语句从缓冲队列中取出。
本实施例中,由于有多个工作线程及对应的缓冲队列,因此上述工作线程是将缓冲队列的数据库语句不停的取出,而不是等全部数据库信息生成数据库语句后再取出。这样做可以减少系统的处理时间,加快写入速度。另外,由于该存储方法是异步处理,异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立的,而产生他们的是多线程或者多进程。异步处理的好处就是提高设备使用率,从而在宏观上提升程序运行效率,异步处理不用阻塞当前线程来等待处理,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程,而且不需要占用额外的线程。因此上述工作线程将缓冲队列的数据库语句不停的取出,不会影响后续进入数据库系统的混乱。
本实施例中,上述控制上述工作线程将数据库语句从缓冲队列中取出的步骤包括:将该缓冲队列内有外键约束相关的数据库语句相邻取出。
本实施例中,有200条数据库语句写入20个缓冲队列,200条数据库语句有40个外键。在数据库语句写入缓冲队列时,一个缓冲队列可能有多个外键语句,因此缓冲队列里不是全都是同一个外键相关的数据库语句。工作线程取出缓冲队列中的数据库语句时,优先将有外键约束相关的数据库语句相邻取出,可以加快数据库系统的写入。例如一个缓冲队列中有四条数据库语句,其中第一条和第二条是A外键相关,第三条和第四条是B外键相关;在取出时,若先取出第二条数据库语句,则随后要将和第二条数据库语句外键相关的数据库语句相邻取出,即取出第二条数据库语句后则要紧跟着取出第一条数据库语句。
本实施例中,上述将数据库语句放入上述缓冲队列的步骤S4前还包括步骤:
S2、接收数据库信息;
S3、根据数据库信息生成数据库语句。
本实施例中,数据库是指按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库,例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。数据库语句是用于对数据库里的数据信息进行查询、更新、管理等。系统接收到数据库信息,根据不同的业务需求,生成不同的数据库语句。例如,将一个企业的男女性别比例统计出来,那么要选取数据库中的姓名和性别的数据,选中后进行统计,然后将数据做出比较得出比例结果。该过程中选取数据库中的姓名和性别的数据的命令就是数据库语句,系统生成数据库语句为:insert into table1(name)values(value1)insert into table2(sex)values(value2),将数据库中的姓名数据插入表1,将数据库中的性别数据插入表2。这个步骤即为生成数据库语句。
在一具体实施例中,打开系统,系统初始化,开启多个工作线程和多个缓冲队列,每一个工作线程绑定一个缓冲队列。业务需要写数据库时,生成数据库语句,根据业务需求不同,把生成的数据库语句放入指定的缓冲队列,有外键约束相关的数据库语句必须放到同一个缓冲队列。工作线程不停的从缓冲队列里取出数据库语句,然后将取出的数据库语句写入数据库系统。
参照图2,提出本发明一实施例的数据库数据异步存储系统,包括模块:
开启模块1,用于开启多个工作线程及对应的缓冲队列;
放入模块4,用于将数据库语句放入所述缓冲队列;
写入模块6,用于将数据库语句写入数据库系统。
本实施例中,工作线程是执行程序的最小单元。通过开启多个工作线程从而增加多个处理路径,加快数据处理的速度,提高数据的存储速度。缓冲队列是用作工作线程的处理空间,通过设置每个工作线程对应一个缓冲队列,可以让每个工作线程处理数据的任务量小,使处理任务相对简洁单一,更能提高数据的处理速度。
本实施例中,上述放入模块4包括:
外键子模块,用于将有外键约束相关的数据库语句放入同一个缓冲队列。
本实施例中,外键又叫关键字,是计算机语言中的一个常用词语。外键表示两个数据库语句之间的相关联系。例如一个企业的职工基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)有关系中,“职工号”是主键,“张三”属性表示该职工所在编辑的姓名的职工号,它引用了本关系中的“职工号”属性,因此“姓名”是外键。外键约束用于保持数据的一致性和完整性,有外键约束相关的数据库语句放入同一个缓冲队列,可以加快数据库语句进入数据库系统的速度。例如将所有的包含有“姓名”的数据库语句全部放入到同一个缓冲队列里面。
本实施例中,还包括:
取出模块5,用于控制所述工作线程将数据库语句从缓冲队列中取出。
本实施例中,由于有多个工作线程及对应的缓冲队列,因此上述工作线程是将缓冲队列的数据库语句不停的取出,而不是等全部数据库信息生成数据库语句后再取出。这样做可以减少系统的处理时间,加快写入速度。另外,由于该存储方法是异步处理,异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立的,而产生他们的是多线程或者多进程。异步处理的好处就是提高设备使用率,从而在宏观上提升程序运行效率,异步处理不用阻塞当前线程来等待处理,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程,而且不需要占用额外的线程。因此上述工作线程将缓冲队列的数据库语句不停的取出,不会影响后续进入数据库系统的混乱。
本实施例中,上述取出模块5包括:
相邻取出子模块,用于将该缓冲队列内有外键约束相关的数据库语句相邻取出。
本实施例中,有200条数据库语句写入20个缓冲队列,200条数据库语句有40个外键。在数据库语句写入缓冲队列时,一个缓冲队列可能有多个外键语句,因此缓冲队列里不是全都是同一个外键相关的数据库语句。工作线程取出缓冲队列中的数据库语句时,优先将有外键约束相关的数据库语句相邻取出,可以加快数据库系统的写入。例如一个缓冲队列中有四条数据库语句,其中第一条和第二条是A外键相关,第三条和第四条是B外键相关;在取出时,若先取出第二条数据库语句,则随后要将和第二条数据库语句外键相关的数据库语句相邻取出,即取出第二条数据库语句后则要紧跟着取出第一条数据库语句。
本实施例中,还包括:
接收模块2,用于设置接收数据库信息;
生成模块3,用于根据数据库信息生成数据库语句。
本实施例中,数据库是指按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库,例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。数据库语句是用于对数据库里的数据信息进行查询、更新、管理等。系统接收到数据库信息,根据不同的业务需求,生成不同的数据库语句。例如,将一个企业的男女性别比例统计出来,那么要选取数据库中的姓名和性别的数据,选中后进行统计,然后将数据做出比较得出比例结果。该过程中选取数据库中的姓名和性别的数据的命令就是数据库语句,系统生成数据库语句为:insert into table1(name)values(value1)insert into table2(sex)values(value2),将数据库中的姓名数据插入表1,将数据库中的性别数据插入表2。
在一具体实施例中,打开系统,系统初始化,开启多个工作线程和多个缓冲队列,每一个工作线程绑定一个缓冲队列。业务需要写数据库时,生成数据库语句,根据业务需求不同,把生成的数据库语句放入指定的缓冲队列,有外键约束相关的数据库语句必须放到同一个缓冲队列。工作线程不停的从缓冲队列里取出数据库语句,然后将取出的数据库语句写入数据库系统。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据库数据异步存储的方法,其特征在于,包括步骤:
开启多个工作线程及对应的缓冲队列;
将数据库语句分别放入所述缓冲队列;
控制数据库语句写入数据库系统。
2.如权利要求1所述的数据库数据异步存储的方法,其特征在于,所述将数据库语句分别放入缓冲队列的步骤包括:
将有外键约束相关的数据库语句放入同一个缓冲队列。
3.如权利要求2所述的数据库数据异步存储的方法,其特征在于,所述控制数据库语句写入数据库系统的步骤前包括步骤:
控制所述工作线程将数据库语句从缓冲队列中取出。
4.如权利要求3所述的数据库数据异步存储的方法,其特征在于,所述控制所述工作线程将数据库语句从缓冲队列中取出的步骤包括:
将该缓冲队列内有外键约束相关的数据库语句相邻取出。
5.如权利要求1所述的数据库数据异步存储的方法,其特征在于,所述将数据库语句放入所述缓冲队列的步骤前包括步骤:
接收数据库信息;
根据数据库信息生成数据库语句。
6.一种数据库数据异步存储系统,其特征在于,包括模块:
开启模块,用于开启多个工作线程及对应的缓冲队列;
放入模块,用于将数据库语句分别放入所述缓冲队列;
写入模块,用于将数据库语句写入数据库系统。
7.如权利要求6所述的数据库数据异步存储系统,其特征在于,所述放入模块包括:
外键子模块,用于将有外键约束相关的数据库语句放入同一个缓冲队列。
8.如权利要求7所述的数据库数据异步存储系统,其特征在于,还包括:
取出模块,用于控制所述工作线程将数据库语句从缓冲队列中取出。
9.如权利要求8所述的数据库数据异步存储系统,其特征在于,所述取出模块包括:
相邻取出子模块,用于将该缓冲队列内有外键约束相关的数据库语句相邻取出。
10.如权利要求6所述的数据库数据异步存储系统,其特征在于,还包括:
接收模块,用于设置接收数据库信息;
生成模块,用于根据数据库信息生成数据库语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710018729.5A CN106844589A (zh) | 2017-01-10 | 2017-01-10 | 数据库数据异步存储方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710018729.5A CN106844589A (zh) | 2017-01-10 | 2017-01-10 | 数据库数据异步存储方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844589A true CN106844589A (zh) | 2017-06-13 |
Family
ID=59118214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710018729.5A Pending CN106844589A (zh) | 2017-01-10 | 2017-01-10 | 数据库数据异步存储方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844589A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132868A (zh) * | 2018-01-15 | 2018-06-08 | 政采云有限公司 | 一种数据监控方法、装置、计算设备及存储介质 |
CN110968595A (zh) * | 2019-11-27 | 2020-04-07 | 广东科徕尼智能科技有限公司 | 一种单线程sql语句执行方法、设备及存储介质 |
CN113312388A (zh) * | 2021-05-28 | 2021-08-27 | 中国船舶重工集团公司第七0七研究所 | 一种多线程且安全的数据库存储框架的构建方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591725A (zh) * | 2011-12-20 | 2012-07-18 | 浙江鸿程计算机系统有限公司 | 一种异构数据库之间多线程数据交换的方法 |
CN102622426A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 数据库写入系统及方法 |
CN103116634A (zh) * | 2012-06-12 | 2013-05-22 | 上海雷腾软件有限公司 | 支持高并发缓存任务队列的系统及其异步批量操作方法 |
CN103473138A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 基于线程池的多任务队列调度方法 |
CN104317906A (zh) * | 2014-10-27 | 2015-01-28 | 合肥星服信息科技有限责任公司 | Gps监控车台上报数据大规模入库的处理方法 |
-
2017
- 2017-01-10 CN CN201710018729.5A patent/CN106844589A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591725A (zh) * | 2011-12-20 | 2012-07-18 | 浙江鸿程计算机系统有限公司 | 一种异构数据库之间多线程数据交换的方法 |
CN102622426A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 数据库写入系统及方法 |
CN103116634A (zh) * | 2012-06-12 | 2013-05-22 | 上海雷腾软件有限公司 | 支持高并发缓存任务队列的系统及其异步批量操作方法 |
CN103473138A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 基于线程池的多任务队列调度方法 |
CN104317906A (zh) * | 2014-10-27 | 2015-01-28 | 合肥星服信息科技有限责任公司 | Gps监控车台上报数据大规模入库的处理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132868A (zh) * | 2018-01-15 | 2018-06-08 | 政采云有限公司 | 一种数据监控方法、装置、计算设备及存储介质 |
CN110968595A (zh) * | 2019-11-27 | 2020-04-07 | 广东科徕尼智能科技有限公司 | 一种单线程sql语句执行方法、设备及存储介质 |
CN113312388A (zh) * | 2021-05-28 | 2021-08-27 | 中国船舶重工集团公司第七0七研究所 | 一种多线程且安全的数据库存储框架的构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1559069B1 (en) | Startup and control of graph-based computation | |
US20140325254A1 (en) | Automatic generation of actionable recommendations from problem reports | |
CN106844589A (zh) | 数据库数据异步存储方法和系统 | |
US20060112040A1 (en) | Device, method, and program for document classification | |
US8661083B2 (en) | Method and system for implementing sequence start and increment values for a resequencer | |
US11972228B2 (en) | Merging database tables by classifying comparison signatures | |
US9069566B1 (en) | Implementation of a multiple writer single reader queue in a lock free and a contention free manner | |
US20190095495A1 (en) | Computerized methods and systems for grouping data using data streams | |
US20100254259A1 (en) | Method and system for performing blocking of messages on errors in message stream | |
CN109343833B (zh) | 数据处理平台以及数据处理方法 | |
US20170293667A1 (en) | Data warehouse model validation | |
US11914624B2 (en) | Systems and methods for managing connections in scalable clusters | |
US11900175B2 (en) | Computing device, computing equipment and programmable scheduling method | |
US10922134B2 (en) | Method, device and computer program product for processing data | |
CN114201620A (zh) | 用于挖掘pdf文件中的pdf表格的方法、设备和介质 | |
US20230385952A1 (en) | System and method for serverless modification and execution of machine learning algorithms | |
US20140289742A1 (en) | Method of sharing contents | |
US8630973B2 (en) | Distributed processing system for calculations based on objects from massive databases | |
US20190014067A1 (en) | System and method for text analysis and routing of written communication | |
RU158945U1 (ru) | Блок унификации с последовательным сопоставлением термов | |
US20210132757A1 (en) | System and method for enabling user-defined data transformations through dynamic client-side workflows | |
US20040120327A1 (en) | Method of managing forwarding tables of network processors based on address learning in line card | |
US20120059999A1 (en) | Methods and systems for storing variable width stack elements in a single memory stack | |
US11941593B2 (en) | Blockchain payment notification system | |
CN114064740B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |