[发明专利]数据并行写入方法、系统和计算机可读介质在审
申请号: | 202010195026.1 | 申请日: | 2020-03-19 |
公开(公告)号: | CN111400333A | 公开(公告)日: | 2020-07-10 |
发明(设计)人: | 杨涛 | 申请(专利权)人: | 嘉兴太美医疗科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 骆希聪 |
地址: | 314001 浙江省嘉兴市经济技*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 并行 写入 方法 系统 计算机 可读 介质 | ||
本发明提供了一种数据并行写入方法、系统和计算机存储介质。该方法包括以下步骤:接收待写入的原始数据;获取数据标识符;将原始数据分拆成多个子数组,并为每个子数组创建一个子线程;每个子线程获取一个数据库连接,并开启一个事务;在每个数据库连接中执行将对应的子数组写入数据库的操作,每个子数组对应一个子数组标识符和一个子数组状态,其中子数组标识符设置为数据标识符,子数组状态设置为未提交;当所有子线程都执行写入操作后,获取每个子线程对应的事务的事务状态;以及当所有子线程的事务状态都为成功时,执行全局提交操作,否则执行全局回滚操作。本发明可以在保障数据写入一致性的基础上提高大量数据写入的性能。
技术领域
本发明主要涉及数据库领域,尤其涉及一种数据并行写入方法、系统和计算机可读介质。
背景技术
在对数据库做大量的数据写入(Insert)的时候,为了保障数据库的事务一致性,通常的做法是将数据的写入操作放在一个事务(Transaction)中,通过串行机制来执行。但是使用串行机制进行大量数据写入时,尤其是需要写入超过10000条以上数据的时候,串行写入的性能较差。
现有的做法是通过数据的批量插入(Batch Insert)操作来处理大量数据写入,但其本质上还是串行处理,进行大量数据写入时的写入性能仍旧低下。
发明内容
本发明要解决的技术问题是提供一种数据并行写入方法,可以在保障数据写入一致性的基础上提高大量数据写入的性能。
为解决上述技术问题,本发明提供了一种数据并行写入方法,包括以下步骤:接收待写入的原始数据;获取数据标识符;将原始数据分拆成多个子数组,并为每个子数组创建一个子线程;每个子线程获取一个数据库连接,并开启一个事务;在每个数据库连接中执行将对应的子数组写入数据库的操作,每个子数组对应一个子数组标识符和一个子数组状态,其中子数组标识符设置为数据标识符,子数组状态设置为未提交;当所有子线程都执行写入操作后,获取每个子线程对应的事务的事务状态;以及当所有子线程的事务状态都为成功时,执行全局提交操作,否则执行全局回滚操作。
可选地,数据标识符在数据库中为唯一。
可选地,数据标识符是通用唯一识别码。
可选地,数据标识符是数据库自增标识符。
可选地,在执行全局提交操作时,将所有为数据标识符的子数组标识符设置为空值。
可选地,子数组写入数据库的操作是通过批量插入操作进行。
可选地,在将原始数据分拆成多个子数组前,还包括:根据处理器的核数和/或频率确定分拆的子数组的数量。
可选地,当子数组的子数组状态为未提交时,禁止其它程序对子数组进行操作。
可选地,全局提交操作包括:将所有子数组标识符为数据标识符的子数组的子数组状态设置为已提交。
可选地,全局回滚操作包括:将所有子数组标识符为数据标识符的子数组删除。
可选地,每个子线程获取一个数据库连接还可以包括:每个子线程在数据库连接池中获取一个数据库连接。
可选地,该方法还包括:将子数组标识符设置为索引。
本发明还提供了一种数据并行写入系统,包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如上所述的方法。
本发明还提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的方法。
与现有技术相比,本发明具有以下优点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于嘉兴太美医疗科技有限公司,未经嘉兴太美医疗科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010195026.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:纽扣电池
- 下一篇:电芯的正极活性材料、高电压高倍率电芯及其制作方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置