【技术实现步骤摘要】
一种基于内存映射的Mysql数据库切割加载方法和装置
[0001]本专利技术涉及计算机
,尤其涉及一种基于内存映射的Mysql数据库切割加载方法和装置。
技术介绍
[0002]现有的Mysql文件加载技术用于将应用容器端的整个文件封装并加载到数据库表中,其缺点是仅能支持加载整个大型文件,无法实现并行加载该大型文件,性能较低,且一旦该加载过程任何一个环节出现问题,将导致整个动作回滚,已加载但还未完成的数据将被整体回滚清除,严重耗费的时间且效率低下。
技术实现思路
[0003]为解决现有技术的不足,本专利技术提出基于内存映射的Mysql数据库切割加载方法和装置,实现并行加载单个大型文件,大幅提升运行性能。
[0004]为实现以上目的,本专利技术所采用的技术方案包括:
[0005]本专利技术第一方面公开了一种基于内存映射的Mysql数据库切割加载方法,包括:
[0006]步骤S1、客户端获取文件信息并计算文件的字节数;
[0007]步骤S2、客户端启动至少一个线程处理文件,其中 ...
【技术保护点】
【技术特征摘要】
1.一种基于内存映射的Mysql数据库切割加载方法,其特征在于,包括:步骤S1、客户端获取文件信息并计算文件的字节数;步骤S2、客户端启动至少一个线程处理文件,其中,根据线程的数量将文件切分为文件块,每个线程负责一个文件块;步骤S3、各个线程将所负责的文件映射到内存中形成内存字节流,并切割内存字节流数据形成N个字节流段数据,其中,N≥1;步骤S4、各个线程将所负责的其中一个字节流段数据传输至服务端Mysql数据库;步骤S5、服务端Mysql数据库根据换行符将字节流段数据切割为行数据进行存储并在磁盘上形成文件存储;步骤S6、重复步骤S4
‑
S5,直至各个线程将所负责的文件块完成处理。2.如权利要求1所述的方法,其特征在于,所述步骤S2中,客户端根据内核数生成线程数,其中,M个内核数对应M个线程,M≥1。3.如权利要求2所述的方法,其特征在于,所述步骤S2中,根据线程的数量将文件切分为文件块并获得每个文件块起始字节的位置,其中,最后一个文件块之前的每个文件块的字节数取为整数x,最后一个文件块的字节数为x及文件余量之和。4.如权利要求1所述的方法,其特征在于,所述步骤S3中,各个线程将所负责的文件块通过基于内存映射的文件读取组件映射到内存中形成内存字节流。5.如权利要求1至4任一项所述的方法,其特征在于,所述步骤S3中,所述字节流段数据为5000行数据的...
【专利技术属性】
技术研发人员:吕卿,
申请(专利权)人:中信银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。