MySQL单表千万级数据处理的思路分享Mysql

在处理过程中,今天上午需要更新A字段,下午爬虫组完成了规格书或图片的爬取又需要更新图片和规格书字段,由于单表千万级深度翻页会导致处理速度越来越慢。

是否有可以不需要深度翻页也可以进行数据更新的凭据?是的,利用自增id列

此单表有自增id列且为主键,根据索引列查询数据和更新数据是最理想的途径。

selecta,b,cfromdb.tbwhereid=9999999;updatedb.tbseta=xwhereid=9999999;

每个进程处理一定id范围内的数据,这样既避免的深度翻页又可以同时多进程处理数据。提高数据查询速度的同时也提高了数据处理速度。下面是我编写的任务分配函数,供参考:

defmission_handler(all_missions,worker_mission_size):"""根据总任务数和每个worker的任务数计算出任务列表,任务列表元素为(任务开始id,任务结束id)。例:总任务数100个,每个worker的任务数40,那么任务列表为:[(1,40),(41,80),(81,100)]:paramall_missions:总任务数:paramworker_mission_size:每个worker的最大任务数:return:[(start_id,end_id),(start_id,end_id),...]"""worker_mission_ids=[]current_id=0whilecurrent_id<=all_missions:start_id=all_missionsifcurrent_id+1>=all_missionselsecurrent_id+1end_id=all_missionsifcurrent_id+worker_mission_size>=all_missionselsecurrent_id+worker_mission_sizeifstart_id==end_id:ifworker_mission_ids[-1][1]==start_id:breakworker_mission_ids.append((start_id,end_id))current_id+=worker_mission_sizereturnworker_mission_ids假设单表id最大值为100,然后我们希望每个进程处理20个id,那么任务列表将为:

>>>mission_handler(100,40)[(1,40),(41,80),(81,100)]那么,进程1将只需要处理idbetween1to40的数据;进程2将只需要处理idbetween41to80的数据;进程3将只需要处理idbetween81to100的数据。

fromconcurrent.futuresimportProcessPoolExecutordefmain():#自增id最大值max_id=30000000#单worker处理数据量worker_mission_size=1000000#使用多进程进行处理missions=mission_handler(max_id,worker_mission_size)workers=[]executor=ProcessPoolExecutor()foridx,missioninenumerate(missions):start_id,end_id=missionworkers.append(executor.submit(data_handler,start_id,end_id,idx))defdata_handler(start_id,end_id,worker_id):pass

记录处理成功与处理失败的数据id,以便后续跟进处理

#用另外一张表记录处理状态insertintodb.tb_handle_status(row_id,success)values(999,0);循环体内进行异常捕获,避免程序异常退出

defdata_handler(start_id,end_id,worker_id):#数据连接conn,cursor=mysql()current_id=start_idtry:whilecurrent_id<=end_id:try:#TODO数据处理代码passexceptExceptionase:#TODO记录处理结果#数据移动到下一条current_id+=1continueelse:#无异常,继续处理下一条数据current_id+=1exceptExceptionase:return'worker_id({}):result({})'.format(worker_id,False)finally:#数据库资源释放cursor.close()conn.close()return'worker_id({}):result({})'.format(worker_id,True)

THE END
1.数据清洗的概念常见问题及实践方法数据已成为企业和组织决策的重要依据,然而,原始数据往往存在各种质量问题,如缺失值、错误值、重复数据等,这些问题严重影响了数据分析的准确性和可靠性。数据清洗作为数据预处理的关键环节,能够有效地解决这些问题,为后续的数据分析和挖掘打下坚实的基础。 今天,让我们一起了解数据清洗的概念、常见问题及实践方法。 https://blog.csdn.net/weixin_44958787/article/details/141850204
2.pythonpython葡萄酒国家分布情况数据分析pyecharts可视化二、设计思路 好的,结合上述代码,我们可以从数据读取、数据清洗和数据处理三个方面详细讲解代码的设计思路和实现过程。 1. 数据读取 数据读取是数据分析的第一步,代码中通过两种方式读取 CSV 文件的数据:使用csv模块和pandas库。 使用csv模块读取数据 import csvfilename = 'winemag-data.csv'with open(filename, https://developer.aliyun.com/article/1581254
3.实施数据分析项目有哪些流程?从数据准备到解决方案全面解析!在数据清洗层,我们对原始数据进行初步处理,移除异常值(例如,观看时长超过24小时或地理位置数据异常的记录)。这一步骤对于确保后续分析的准确性至关重要。 数据汇总层 数据汇总层根据分析需求,将用户行为按照特定主题进行聚合,形成轻量级的聚合指标表。例如,在直播应用项目中,我们可以将用户的登录、订阅、观看、弹幕和送https://www.fanruan.com/bw/bd-sjfxxmss
4.基于Python技术的电商个性化推荐系统的灵感来源python商品推荐数据清洗 数据可视化及分析 结论与建议 分析思路 其实就今天的数据来讲,我们主要做的是探索性分析;首先梳理已有的字段,有标题(提取出品类)、价格、销量、店铺名、发货地。下面来做一下详细的维度拆分以及可视化图形选择: 品类: 品类销量的 TOP 10 有哪些?(表格或者横向条形图) https://blog.51cto.com/u_14152/11729805
5.小浣熊家族:自媒体新手的快速成长指南AI程序员海军分析思路 数据收集 收集各大自媒体平台的用户数据、内容数据、活动数据等 数据来源包括平台后台统计、第三方数据分析工具、问卷调查等 数据清洗 对收集到的数据进行清洗,去除重复和无效数据 确保数据的准确性和一致性 数据分析 使用数据分析工具(如 Python、R、Excel 等)进行数据处理和分析 https://xie.infoq.cn/article/66e2c96a2abe28aa81fd4c129
6.帆软FineBI数据编辑,帮你省下80%浪费在数据处理的时间!②历史步骤可见,让分析思路可回溯,处理过程变透明 用Excel做分析存在一个明显的弊端就是操作步骤不可见,不知道中间做了哪些步骤,如果想查看计算逻辑,只有两个方法:要么CTRL+Z回退,要么点进函数一个一个查看。 FineBI的数据编辑,可以针对历史操作步骤进行追溯、灵活调整历史操作步骤,解决历史操作不可见的问题。对于个人https://www.360doc.cn/mip/1132147943.html
7.Prompt用得好,增长工作下班早1.数据清洗 你是一位资深数据分析师,具备深厚的数据分析技能与行业经验。你擅长应用各种数据分析工具和技术,对数据进行挖掘、整合、分析,现在我有一份销售数据,是jason格式的,帮我把数据处理一下,直接输出表格。 2.找数据分析思路 你是一位XX行业的市场营销分析专家,请根据这份数据集合,给出4个不同方向的分析主题https://www.niaogebiji.com/article-645093-1.html
8.www.ptzfcg.gov.cn/upload/document/20180724/0279275ee54644f69.2投标人应在投标截止时间前按照福建省政府采购网上公开信息系统设定的操作流程将电子投标文件上传至福建省政府采购网上公开信息系统,同时将投标人的CA证书连同密封的纸质投标文件送达招标文件第一章第10条载明的地点,否则投标将被拒绝。 10、开标时间及地点:详见招标公告或更正公告(若有),若不一致,以更正公告(若有)http://www.ptzfcg.gov.cn/upload/document/20180724/0279275ee54644f6adb79e806e1b3734.html
9.图像数据清洗方法.pptx数智创新 变革未来图像数据清洗方法 图像数据清洗简介 数据清洗必要性 常见图像数据问题 数据清洗基本流程 图像预处理技术 图像噪声处理方法 图像标注修正技术 总结与展望Contents Page目录页 图像数据清洗简介图像数据清洗方法 图像数据清洗简介图像数据清洗简介1.图像数据清洗的定义和重要性:图像数据清洗是指通过一系列技术https://max.book118.com/html/2023/1110/7116145134006004.shtm
10.请问机场出租车相关的数据在哪找得到?因此,针对异常数据的清洗是在数据的正式处理分析之前必须做的重要步骤。缺少这一步骤,在后续的处理中很可能产生错误的分析结果。在出租车GPS数据中也不可避免地存在一定的数据异常。这里我们以数据中存在的异常载客状态为例,介绍数据异常的情况以及数据清洗的思路。https://www.yoojia.com/ask/17-11950137789821619087.html