数据库数据异步存储方法和系统与流程

文档序号:12666912阅读:381来源:国知局
本发明涉及到数据库的数据存储方法,特别是涉及到一种数据库数据异步存储方法和系统。
背景技术
::现有技术中,数据库异步存储就是把将要写数据库的记录放到某一个指定的缓冲区,另外一个独立的线程或进程将此缓冲区的记录取出写进数据库,但这种方式通常是一个线程或进程去处理,处理效率低。技术实现要素:本发明的主要目的为提供一种数据库数据异步存储方法,可以定义多个工作线程和多个缓冲区提高处理效率以解决上述
背景技术
:中提出的问题。本发明提供一种数据库数据异步存储的方法,包括步骤:开启多个工作线程及对应的缓冲队列;将数据库语句放入所述缓冲队列;控制数据库语句写入数据库系统。进一步地,所述将数据库语句放入缓冲队列的步骤包括:将有外键约束相关的数据库语句放入同一个缓冲队列。进一步地,所述控制数据库语句写入数据库系统的步骤前包括步骤:控制所述工作线程将数据库语句从缓冲队列中取出。进一步地,所述控制所述工作线程将数据库语句从缓冲队列中取出的步骤包括:将该缓冲队列内有外键约束相关的数据库语句相邻取出。进一步地,所述将数据库语句放入所述缓冲队列的步骤前包括步骤:接收数据库信息;根据数据库信息生成数据库语句。一种数据库数据异步存储系统,包括模块:开启模块,用于开启多个工作线程及对应的缓冲队列;放入模块,用于将数据库语句放入所述缓冲队列;写入模块,用于将数据库语句写入数据库系统。进一步地,所述放入模块包括:外键子模块,用于将有外键约束相关的数据库语句放入同一个缓冲队列。进一步地,还包括取出模块,用于控制所述工作线程将数据库语句从缓冲队列中取出。进一步地,所述取出模块包括:相邻取出子模块,用于将该缓冲队列内有外键约束相关的数据库语句相邻取出。进一步地,还包括接收模块,用于设置接收数据库信息;生成模块,用于根据数据库信息生成数据库语句。与现有技术相比,本发明的有益效果是:通过定义多个线程和缓冲队列,让多个线程同时工作,提高了写入速度和效率。在数据进入缓冲队列前通过数据库语句的外键约束,更方便数据库系统的写入。附图说明图1是本发明的一实施例的数据库数据异步存储方法步骤流程图;图2是本发明的一实施例的数据库数据异步存储系统模块结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图1,提出本发明一实施例的数据库数据异步存储方法,包括步骤:S1、开启多个工作线程及对应的缓冲队列;S4、将数据库语句放入上述缓冲队列;S6、控制数据库语句写入上述数据库系统。本实施例中,工作线程是执行程序的最小单元。通过开启多个工作线程从而增加多个处理路径,加快数据处理的速度,提高数据的存储速度。缓冲队列是用作工作线程的处理空间,通过设置每个工作线程对应一个缓冲队列,可以让每个工作线程处理数据的任务量小,使处理任务相对简洁单一,更能提高数据的处理速度。本实施例中,上述将数据库语句放入缓冲队列的步骤S4包括:选择将有外键约束相关的数据库语句放入同一个缓冲队列。本实施例中,外键又叫关键字,是计算机语言中的一个常用词语。外键表示两个数据库语句之间的相关联系。例如一个企业的职工基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)有关系中,“职工号”是主键,“张三”属性表示该职工所在编辑的姓名的职工号,它引用了本关系中的“职工号”属性,因此“姓名”是外键。外键约束用于保持数据的一致性和完整性,有外键约束相关的数据库语句放入同一个缓冲队列,可以加快数据库语句进入数据库系统的速度。例如将所有的包含有“姓名”的数据库语句全部放入到同一个缓冲队列里面。本实施例中,上述控制数据库语句写入数据库系统的步骤S6前包括步骤:S5、控制上述工作线程将数据库语句从缓冲队列中取出。本实施例中,由于有多个工作线程及对应的缓冲队列,因此上述工作线程是将缓冲队列的数据库语句不停的取出,而不是等全部数据库信息生成数据库语句后再取出。这样做可以减少系统的处理时间,加快写入速度。另外,由于该存储方法是异步处理,异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立的,而产生他们的是多线程或者多进程。异步处理的好处就是提高设备使用率,从而在宏观上提升程序运行效率,异步处理不用阻塞当前线程来等待处理,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程,而且不需要占用额外的线程。因此上述工作线程将缓冲队列的数据库语句不停的取出,不会影响后续进入数据库系统的混乱。本实施例中,上述控制上述工作线程将数据库语句从缓冲队列中取出的步骤包括:将该缓冲队列内有外键约束相关的数据库语句相邻取出。本实施例中,有200条数据库语句写入20个缓冲队列,200条数据库语句有40个外键。在数据库语句写入缓冲队列时,一个缓冲队列可能有多个外键语句,因此缓冲队列里不是全都是同一个外键相关的数据库语句。工作线程取出缓冲队列中的数据库语句时,优先将有外键约束相关的数据库语句相邻取出,可以加快数据库系统的写入。例如一个缓冲队列中有四条数据库语句,其中第一条和第二条是A外键相关,第三条和第四条是B外键相关;在取出时,若先取出第二条数据库语句,则随后要将和第二条数据库语句外键相关的数据库语句相邻取出,即取出第二条数据库语句后则要紧跟着取出第一条数据库语句。本实施例中,上述将数据库语句放入上述缓冲队列的步骤S4前还包括步骤:S2、接收数据库信息;S3、根据数据库信息生成数据库语句。本实施例中,数据库是指按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库,例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。数据库语句是用于对数据库里的数据信息进行查询、更新、管理等。系统接收到数据库信息,根据不同的业务需求,生成不同的数据库语句。例如,将一个企业的男女性别比例统计出来,那么要选取数据库中的姓名和性别的数据,选中后进行统计,然后将数据做出比较得出比例结果。该过程中选取数据库中的姓名和性别的数据的命令就是数据库语句,系统生成数据库语句为:insertintotable1(name)values(value1)insertintotable2(sex)values(value2),将数据库中的姓名数据插入表1,将数据库中的性别数据插入表2。这个步骤即为生成数据库语句。在一具体实施例中,打开系统,系统初始化,开启多个工作线程和多个缓冲队列,每一个工作线程绑定一个缓冲队列。业务需要写数据库时,生成数据库语句,根据业务需求不同,把生成的数据库语句放入指定的缓冲队列,有外键约束相关的数据库语句必须放到同一个缓冲队列。工作线程不停的从缓冲队列里取出数据库语句,然后将取出的数据库语句写入数据库系统。参照图2,提出本发明一实施例的数据库数据异步存储系统,包括模块:开启模块1,用于开启多个工作线程及对应的缓冲队列;放入模块4,用于将数据库语句放入所述缓冲队列;写入模块6,用于将数据库语句写入数据库系统。本实施例中,工作线程是执行程序的最小单元。通过开启多个工作线程从而增加多个处理路径,加快数据处理的速度,提高数据的存储速度。缓冲队列是用作工作线程的处理空间,通过设置每个工作线程对应一个缓冲队列,可以让每个工作线程处理数据的任务量小,使处理任务相对简洁单一,更能提高数据的处理速度。本实施例中,上述放入模块4包括:外键子模块,用于将有外键约束相关的数据库语句放入同一个缓冲队列。本实施例中,外键又叫关键字,是计算机语言中的一个常用词语。外键表示两个数据库语句之间的相关联系。例如一个企业的职工基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)有关系中,“职工号”是主键,“张三”属性表示该职工所在编辑的姓名的职工号,它引用了本关系中的“职工号”属性,因此“姓名”是外键。外键约束用于保持数据的一致性和完整性,有外键约束相关的数据库语句放入同一个缓冲队列,可以加快数据库语句进入数据库系统的速度。例如将所有的包含有“姓名”的数据库语句全部放入到同一个缓冲队列里面。本实施例中,还包括:取出模块5,用于控制所述工作线程将数据库语句从缓冲队列中取出。本实施例中,由于有多个工作线程及对应的缓冲队列,因此上述工作线程是将缓冲队列的数据库语句不停的取出,而不是等全部数据库信息生成数据库语句后再取出。这样做可以减少系统的处理时间,加快写入速度。另外,由于该存储方法是异步处理,异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立的,而产生他们的是多线程或者多进程。异步处理的好处就是提高设备使用率,从而在宏观上提升程序运行效率,异步处理不用阻塞当前线程来等待处理,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程,而且不需要占用额外的线程。因此上述工作线程将缓冲队列的数据库语句不停的取出,不会影响后续进入数据库系统的混乱。本实施例中,上述取出模块5包括:相邻取出子模块,用于将该缓冲队列内有外键约束相关的数据库语句相邻取出。本实施例中,有200条数据库语句写入20个缓冲队列,200条数据库语句有40个外键。在数据库语句写入缓冲队列时,一个缓冲队列可能有多个外键语句,因此缓冲队列里不是全都是同一个外键相关的数据库语句。工作线程取出缓冲队列中的数据库语句时,优先将有外键约束相关的数据库语句相邻取出,可以加快数据库系统的写入。例如一个缓冲队列中有四条数据库语句,其中第一条和第二条是A外键相关,第三条和第四条是B外键相关;在取出时,若先取出第二条数据库语句,则随后要将和第二条数据库语句外键相关的数据库语句相邻取出,即取出第二条数据库语句后则要紧跟着取出第一条数据库语句。本实施例中,还包括:接收模块2,用于设置接收数据库信息;生成模块3,用于根据数据库信息生成数据库语句。本实施例中,数据库是指按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库,例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。数据库语句是用于对数据库里的数据信息进行查询、更新、管理等。系统接收到数据库信息,根据不同的业务需求,生成不同的数据库语句。例如,将一个企业的男女性别比例统计出来,那么要选取数据库中的姓名和性别的数据,选中后进行统计,然后将数据做出比较得出比例结果。该过程中选取数据库中的姓名和性别的数据的命令就是数据库语句,系统生成数据库语句为:insertintotable1(name)values(value1)insertintotable2(sex)values(value2),将数据库中的姓名数据插入表1,将数据库中的性别数据插入表2。在一具体实施例中,打开系统,系统初始化,开启多个工作线程和多个缓冲队列,每一个工作线程绑定一个缓冲队列。业务需要写数据库时,生成数据库语句,根据业务需求不同,把生成的数据库语句放入指定的缓冲队列,有外键约束相关的数据库语句必须放到同一个缓冲队列。工作线程不停的从缓冲队列里取出数据库语句,然后将取出的数据库语句写入数据库系统。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1