CN110674116B - 一种基于swoole的校验插入数据库数据重复的系统及方法 - Google Patents
一种基于swoole的校验插入数据库数据重复的系统及方法 Download PDFInfo
- Publication number
- CN110674116B CN110674116B CN201910912331.5A CN201910912331A CN110674116B CN 110674116 B CN110674116 B CN 110674116B CN 201910912331 A CN201910912331 A CN 201910912331A CN 110674116 B CN110674116 B CN 110674116B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- swoole
- application server
- slave
- 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.)
- Active
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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于swoole的校验插入数据库数据重复的系统,包括客户端、应用服务器,MySQL分布式主从数据库;客户端用于提供数据上传的可视化操作界面并提示用户数据上传实时状态;应用服务器用于处理客户端上传的数据,及将数据按照按照应用程序配置划分为多个子数据块,及将各子数据块根据应用程序配置细分为多个孙数据块,并依赖swoole框架为每一个孙数据块创建独立的线程用于进行数据重复校验;MySQL分布式主从数据库用于数据存储。本发明的系统采用swoole框架发起多线程的方式和分布式主从数据库,多线程可以充分的利用应用服务器CPU,多数据库同时查询,从而极大的提高了大量数据插入数据库前重复数据校验的效率。
Description
技术领域
本发明涉及校验插入数据库数据重复技术领域,特别涉及一种基于swoole的校验插入数据库数据重复的系统及方法。
背景技术
随着“互联网+”的不断发展,各种类型的企业都在往数字化方向转型,每个企业都建立了自己或大或小的数据平台,数据的种类和规模都在以惊人的速度增长。
现有的PHP的web开发大多是在LNMP(Linux+Nginx+Mysql+PHP)开发环境中进行,常用PHP-FPM(PHP FastCGI Process Manager)进程管理器,用于管理PHP进程池的软件,用于接受web服务器的请求。PHP-FPM使用多进程模型,每个进程只有一个线程,每个线程只能处理一个客户端访问。因此,当客户端数据量大的时候,大量数据与数据库中存储数据进行重复校验的时候,经常会出现处理时间长,导致请求超时的问题。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种基于swoole的校验插入数据库数据重复的系统及方法,可有效解决上述大量数据重复校验时间长,导致客户端请求超时的问题。
为了达到上述的技术效果,本发明采取以下技术方案:
一种基于swoole的校验插入数据库数据重复的系统,包括客户端、应用服务器,MySQL分布式主从数据库;所述客户端用于提供数据上传的可视化操作界面并提示用户数据上传实时状态;所述应用服务器用于处理客户端上传的数据,及将数据按照应用程序配置划分为多个子数据块,及将各子数据块根据应用程序配置细分为多个孙数据块,并依赖swoole框架为每一个孙数据块创建独立的线程用于进行数据重复校验;所述MySQL分布式主从数据库用于数据存储;本发明的基于swoole的校验插入数据库数据重复的系统在工作时,首先通过客户端上传大量数据到应用服务器,然后应用服务器按照应用程序配置的从数据库和从数据库可提供的并发支持数进行数据划分,最后通过swoole为每一个数据块发起独立的线程与从数据库中数据进行重复数据校验。
进一步地,所述MySQL分布式主从数据库内储存的数据包括用于数据重复校验的源数据,主从数据库数据一致,其中,从数据库提供了用于重复对比源数据,主数据库用于校验通过后数据的插入。
进一步地,所述MySQL分布式主从数据库中包括主数据库b台,从数据库c台。
进一步地,所述应用服务器具体是用于处理客户端上传的M条数据,及将数据按照从数据库的台数划分为c个子数据块,其中,每个数据块中包含M/c条数据,应用服务器还用于将各子数据块根据各从数据库可提供的用于数据校验的并发连接数d,将各子数据块细分为d个孙数据块,并依赖swoole框架为每一个孙数据块创建独立的线程用于进行数据重复校验。
同时,本发明还公开了一种基于swoole校验插入数据库数据重复的方法,包括上述的基于swoole的校验插入数据库数据重复的系统,具体包括以下步骤:
A.用户通过客户端上传大量数据到应用服务器,等待应用服务器处理;
B.应用服务器将上传的大量数据转化成可处理的数组并存储在内存中;
C.应用服务器据应用程序数据库配置将内存中存储的大量数据的数组划分为多个子数组,且各个子数组与从数据库形成一一对应的关系;
D.应用服务器根据应用程序配置将划分后的各子数组再细划分为多个孙数据块,最后通过swoole框架为每个细划分后的孙数据块创建独立的线程,并通过数组数据的唯一标识字段在各自对应的从数据库批量查询数据,根据查询结果进行重复校验;
E.若有线程校验到返回数据中存在数据重复,则该线程继续将该孙数据块通过查询方法定位到具体是哪一条数据出现了重复,并将该重复数据的唯一标识符返回客户端;
F.若数据校验通过,则应用服务器整理内存中的数据从主数据库将数据批量插入,再通过数据库的主从同步机制将数据同步到从数据库中,最后将插入成功的信息返回客户端;
本发明的方法采用基于swoole框架创建多线程的方法,与分布式从数据库中大量数据进行重复校验,充分的利用了多线程和多数据库的并行处理优势,极大的提升了大量数据入库前数据重复校验的效率,节省了大量的时间,提升了用户体验。
进一步地,所述MySQL分布式主从数据库中包括主数据库b台,从数据库c台。
进一步地,所述步骤C中应用服务器具体是将内存中存储的大量数据的数组划分为c个子数组。
进一步地,所述步骤D中应用服务器具体是将划分后的各子数组再细划分为d个孙数据块。
进一步地,所述步骤E中,具体是通过二分法定位具体是哪一条数据出现了重复。
本发明与现有技术相比,具有以下的有益效果:
本发明的基于swoole的校验插入数据库数据重复的系统及方法,采用swoole框架发起多线程的方式和分布式主从数据库,多线程可以充分的利用应用服务器CPU,多数据库同时查询,从而极大的提高了大量数据插入数据库前重复数据校验的效率。
附图说明
图1是本发明的基于swoole的校验插入数据库数据重复的系统的示意图。
图2是本发明的基于swoole的校验插入数据库数据重复的方法的示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
如图1所示,一种基于swoole的校验插入数据库数据重复的系统,包括:客户端,应用服务器,MySQL分布式主从数据库,具体的,本实施例中,MySQL分布式主从数据库中包括主数据库b台,从数据库c台。
具体的,客户端主要作用是提供大量数据上传的可视化操作界面,提示用户数据上传实时状态。
应用服务器则主要用于处理客户端上传的大量数据M条。将大量数据按照应用程序配置的从数据库的台数(c台)划分成c个子数据块,每个数据块中包含M/c条数据,然后将各子数据块根据应用程序配置的各从库可提供的用于数据校验的并发连接数d(本实施例中为方便描述假设各从数据库的并发连接数都为d),最后把各子数据块细分为d个孙数据块,依赖swoole框架为每一个孙数据块创建独立的线程用于查库进行数据重复校验。
MySQL分布式主从数据库则主要用于数据存储,具体存储了大量用于数据重复校验的源数据,其中,主从数据库数据一致,且从数据库提供了用于重复对比源数据,主数据库主要用于校验通过后数据的插入。
本实施例中的基于swoole的校验插入数据库数据重复的系统在工作时,先通过客户端上传大量数据到应用服务器,然后应用服务器按照应用程序配置的从数据库和从数据库可提供的并发支持数进行数据划分,最后通过swoole为每一个数据块发起独立的线程与从数据库中数据进行重复数据校验。
实施例二
如图2所示,一种基于swoole校验插入数据库数据重复的方法,采用基于swoole框架创建多线程的方法,与分布式从数据库中大量数据进行重复校验,充分的利用了多线程和多数据库的并行处理优势,从而极大的提升大量数据入库前数据重复校验的效率,具体包括以下步骤:
步骤1.用户通过客户端上传大量数据到应用服务器,等待应用服务器处理;
步骤2.应用服务器将上传的大量数据转化成可处理的数组并存储在内存中;
步骤3.应用服务器据应用程序数据库配置将内存中存储的大量数据的数组划分为多个子数组,且各个子数组与从数据库形成一一对应的关系;本实施例中,MySQL分布式主从数据库中包括主数据库b台,从数据库c台,则应用服务器具体是将内存中存储的大量数据的数组划分为c个子数组;
步骤4.应用服务器根据应用程序配置将划分后的各子数组再细划分为d个孙数据块,最后通过swoole框架为每个细划分后的孙数据块创建独立的线程,并通过数组数据的唯一标识字段在各自对应的从数据库批量查询数据,根据查询结果进行重复校验;
步骤5.若有线程校验到返回数据中存在数据重复,则该线程继续将该孙数据块通过二分法快速查询定位到具体是哪一条数据出现了重复,并将该重复数据的唯一标识符返回客户端;
步骤6.若数据校验通过,则应用服务器整理内存中的数据从主数据库将数据批量插入,再通过数据库的主从同步机制将数据同步到从数据库中,最后将插入成功的信息返回客户端。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (7)
1.一种基于swoole的校验插入数据库数据重复的系统,其特征在于,包括客户端、应用服务器,MySQL分布式主从数据库;
所述客户端用于提供数据上传的可视化操作界面并提示用户数据上传实时状态;所述应用服务器用于处理客户端上传的数据,及将数据按照应用程序配置划分为多个子数据块,及将各子数据块根据应用程序配置细分为多个孙数据块,并依赖swoole框架为每一个孙数据块创建独立的线程用于进行数据重复校验;所述MySQL分布式主从数据库用于数据存储;
所述MySQL分布式主从数据库中包括主数据库b台,从数据库c台;所述应用服务器具体是用于处理客户端上传的M条数据,及将数据按照从数据库的台数划分为c个子数据块,其中,每个数据块中包含M/c条数据,应用服务器还用于将各子数据块根据各从数据库可提供的用于数据校验的并发连接数d,将各子数据块细分为d个孙数据块,并依赖swoole框架为每一个孙数据块创建独立的线程用于进行数据重复校验。
2.根据权利要求1所述的一种基于swoole的校验插入数据库数据重复的系统,其特征在于,所述MySQL分布式主从数据库内储存的数据包括用于数据重复校验的源数据,其中,从数据库提供了用于重复对比源数据,主数据库用于校验通过后数据的插入。
3.一种基于swoole校验插入数据库数据重复的方法,其特征在于,包括如权利要求1所述的基于swoole的校验插入数据库数据重复的系统,具体包括以下步骤:
A.用户通过客户端上传大量数据到应用服务器,等待应用服务器处理;
B.应用服务器将上传的大量数据转化成可处理的数组并存储在内存中;
C.应用服务器据应用程序数据库配置将内存中存储的大量数据的数组划分为多个子数组,且各个子数组与从数据库形成一一对应的关系;
D.应用服务器根据应用程序配置将划分后的各子数组再细划分为多个孙数据块,最后通过swoole框架为每个细划分后的孙数据块创建独立的线程,并通过数组数据的唯一标识字段在各自对应的从数据库批量查询数据,根据查询结果进行重复校验;
E.若有线程校验到返回数据中存在数据重复,则该线程继续将该孙数据块通过查询方法定位到具体是哪一条数据出现了重复,并将该重复数据的唯一标识符返回客户端;
F.若数据校验通过,则应用服务器整理内存中的数据从主数据库将数据批量插入,再通过数据库的主从同步机制将数据同步到从数据库中,最后将插入成功的信息返回客户端。
4.根据权利要求3所述的一种基于swoole校验插入数据库数据重复的方法,其特征在于,所述MySQL分布式主从数据库中包括主数据库b台,从数据库c台。
5.根据权利要求4所述的一种基于swoole校验插入数据库数据重复的方法,其特征在于,所述步骤C中应用服务器具体是将内存中存储的大量数据的数组划分为c个子数组。
6.根据权利要求4所述的一种基于swoole校验插入数据库数据重复的方法,其特征在于,所述步骤D中应用服务器具体是将划分后的各子数组再细划分为d个孙数据块。
7.根据权利要求3至6中任一所述的一种基于swoole校验插入数据库数据重复的方法,其特征在于,所述步骤E中,具体是通过二分法定位具体是哪一条数据出现了重复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912331.5A CN110674116B (zh) | 2019-09-25 | 2019-09-25 | 一种基于swoole的校验插入数据库数据重复的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912331.5A CN110674116B (zh) | 2019-09-25 | 2019-09-25 | 一种基于swoole的校验插入数据库数据重复的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110674116A CN110674116A (zh) | 2020-01-10 |
CN110674116B true CN110674116B (zh) | 2022-05-03 |
Family
ID=69078940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910912331.5A Active CN110674116B (zh) | 2019-09-25 | 2019-09-25 | 一种基于swoole的校验插入数据库数据重复的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674116B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431969A (zh) * | 2020-02-28 | 2020-07-17 | 平安科技(深圳)有限公司 | 连接池的统一部署系统及方法 |
CN112084183A (zh) * | 2020-09-11 | 2020-12-15 | 北京有竹居网络技术有限公司 | 数据校验方法、装置、电子设备和计算机可读介质 |
CN111930850A (zh) * | 2020-09-24 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN104572106A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于小内存处理大规模数据的并行程序开发方法 |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储系统中重复冗余数据的高效去重方法 |
CN105760452A (zh) * | 2016-02-04 | 2016-07-13 | 深圳市嘉力达实业有限公司 | 一种高并发海量数据的采集、处理和存储的方法及系统 |
CN106201771A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储系统和数据读写方法 |
CN109101365A (zh) * | 2018-08-01 | 2018-12-28 | 南京壹进制信息技术股份有限公司 | 一种基于源端数据重删的数据备份和恢复方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170208052A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc | Hybrid cloud file system and cloud based storage system having such file system therein |
US20170206218A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc | Method and apparatus for data deduplication in cloud based storage system |
-
2019
- 2019-09-25 CN CN201910912331.5A patent/CN110674116B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN104572106A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于小内存处理大规模数据的并行程序开发方法 |
CN106201771A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储系统和数据读写方法 |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储系统中重复冗余数据的高效去重方法 |
CN105760452A (zh) * | 2016-02-04 | 2016-07-13 | 深圳市嘉力达实业有限公司 | 一种高并发海量数据的采集、处理和存储的方法及系统 |
CN109101365A (zh) * | 2018-08-01 | 2018-12-28 | 南京壹进制信息技术股份有限公司 | 一种基于源端数据重删的数据备份和恢复方法 |
Non-Patent Citations (2)
Title |
---|
一种基于重复数据删除的网络文件备份系统设计与实现;孙爱玲,冉禄纯;《计算机应用与软件》;20141015;第31卷(第10期);86-90+136 * |
面向大数据备份的应用感知并行重删存储系统;付印金 等;《计算机研究与发展》;20151215(第52期);139-147 * |
Also Published As
Publication number | Publication date |
---|---|
CN110674116A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674116B (zh) | 一种基于swoole的校验插入数据库数据重复的系统及方法 | |
CN105956666B (zh) | 一种机器学习方法及系统 | |
CN107958010B (zh) | 用于在线数据迁移的方法及系统 | |
CN109298924B (zh) | 定时任务的管理方法、计算机可读存储介质和终端设备 | |
WO2018001200A1 (zh) | 数据处理方法、集群管理器、资源管理器、数据处理系统 | |
CN107015842B (zh) | 一种服务器端程序编译和发布的管理方法及系统 | |
CN111563041B (zh) | 一种测试用例按需精准执行方法 | |
WO2014052942A1 (en) | Random number generator in a parallel processing database | |
WO2022002044A1 (zh) | 分布式数据库的处理方法及装置、网络设备和计算机可读存储介质 | |
CN112000649B (zh) | 一种基于map reduce的增量数据同步的方法和装置 | |
US10579915B2 (en) | Method and device for initializing two-dimensional code | |
CN105005572A (zh) | 一种数据库映射方法及装置 | |
CN110688112A (zh) | 多项目共线开发代码的自动入库的方法及系统 | |
US9507837B2 (en) | Reference data segmentation from single to multiple tables | |
CN112711631A (zh) | 数字孪生信息同步方法、系统、可读存储介质及设备 | |
CN115827922A (zh) | 基于风电数据的可视化分析处理方法、系统和计算机设备 | |
CN110021339A (zh) | 基于蛋白质折叠测算蛋白质结构的集群并行计算加速方法 | |
CN111522832A (zh) | 一种大数据实时更新方法、系统、设备和存储介质 | |
CN110765212A (zh) | 基于数据库为平台的数据同步系统及方法 | |
Ran et al. | Modeling and verifying the ttcan protocol using timed csp | |
CN106168983B (zh) | 一种混合资源处理方法及装置 | |
CN117591565B (zh) | 虚拟机器人的实例处理方法、实例处理装置及存储介质 | |
CN117609270B (zh) | 一种多维数据分布式并行处理方法 | |
CN1275742A (zh) | 网络 | |
Pan et al. | DNA sequence splicing algorithm based on Spark |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |