当前位置: 首页 > news >正文

做草坪绿化网站北京知名seo公司精准互联

做草坪绿化网站,北京知名seo公司精准互联,企业建站公司电话,高仿id97网站模板文章目录 错误一错误原因解决方案 错误二原因解决方案 我自己知道的,这类问题有两类原因,两种解决方案。 错误一 错误原因 pymysql的主进程启动的connect无法给子进程中使用,所以读取大批量数据时最后容易出现了此类问题。 解决方案 换成…

文章目录

  • 错误一
    • 错误原因
    • 解决方案
  • 错误二
    • 原因
    • 解决方案

我自己知道的,这类问题有两类原因,两种解决方案。

错误一

错误原因

pymysql的主进程启动的connect无法给子进程中使用,所以读取大批量数据时最后容易出现了此类问题。

解决方案

换成pymysql-pool可以解决方法:
具体如下:

pip install pymysql-pool

代码如下:

import pymysql
import pymysqlpooldef select_ebay_catelotory():config={'host': HOST, 'user': USER, 'password': PASSWD, 'database': DB, 'autocommit':True}pool1 = pymysqlpool.ConnectionPool(size=10, maxsize=20, pre_create_num=2, name='pool1', **config)con1 = pool1.get_connection()gcu = con1.cursor()try:gcu.execute(f"""SELECT *** """)# 获取剩余结果所有数据rows = gcu.fetchall()except Exception as e:print(e)finally:# gcu.close()con1.close()return rows

错误二

原因

要读取的内容太大了。有两类:某列太长了,总行数太多了。

如何确定?
你的代码读取100行没问题,1000行也没问题,10000行也没问题,100万行就有问题了。那就是这个原因。

解决方案

不要limit去读,太费时间:先取id,再用id去分批读取数据。

import pymysql
import pymysqlpooldef select_all_ids():config={'host': HOST, 'user': USER, 'password': PASSWD, 'database': DB, 'autocommit':True}pool1 = pymysqlpool.ConnectionPool(size=35, maxsize=35, pre_create_num=2, name='pool1', **config)con1 = pool1.get_connection()gcu = con1.cursor()try:gcu.execute(f"""SELECT `id` FROM sfc_minesweeper.product_detail WHERE create_time>'2024-07-10' AND CHAR_LENGTH(result_data)>500""")# 获取剩余结果所有数据rows = gcu.fetchall()except Exception as e:print(e)finally:# gcu.close()con1.close()return rowsdef select_ebay_catelotory(pids):config={'host': HOST, 'user': USER, 'password': PASSWD, 'database': DB, 'autocommit':True}pool1 = pymysqlpool.ConnectionPool(size=35, maxsize=35, pre_create_num=2, name='pool1', **config)con1 = pool1.get_connection()gcu = con1.cursor()try:gcu.execute(f"""SELECT `id`, `result_data`, `product_offer_id` FROM sfc_minesweeper.product_detail WHERE id in {tuple(pids)}""")# 获取剩余结果所有数据rows = gcu.fetchall()except Exception as e:print(e)finally:# gcu.close()con1.close()return rows# 先拿到所有id
pd_ids = [e[0] for e in select_all_ids()]
# 再分批读取
pd1688s = []
step = 4000
for begin in range(0, len(pd_ids), step):pd1688s.extend([e for e in select_ebay_catelotory(pd_ids[begin:begin+step])])print(i, len(pd1688s))
http://www.dinnco.com/news/49576.html

相关文章:

  • 邯郸做网站价格营销网络的建设
  • 网站上怎么做游戏软文素材
  • 网站开发与调试实验报告温州seo
  • 商城网站的搜索记录代码怎么做免费大数据网站
  • c 做网站教程2022最近十大的新闻热点
  • 适合seo优化的网站制作营销软文是什么意思
  • 关键词网站建设优化抖音竞价推广怎么做
  • 凡科建站快车官网怎样在百度上发布广告
  • 济南如何挑选网站建设公司浏览器打开网站
  • 成都网站制作服务怎么做网站推广和宣传
  • 做点小本意 哪个网站拿货便宜点竞价排名适合百度吗
  • 做纯净系统的网站广州今日头条新闻最新
  • 网站建设 有道翻译南京百度快照优化排名
  • 宁波市建设局官网郑州百度网站优化排名
  • jeecms 怎么建设网站永久免费开网店app
  • 制作网页和网站有啥不同南京网络营销服务
  • wordpress关键词和描述网站手机优化
  • cdn加速国外服务器百度seo关键词排名推荐
  • 安徽免费网站制作域名注册流程和费用
  • 网站投票系统怎么做广州网络营销运营
  • 网站首页设计制作费用网站统计数据分析
  • 广东网站设计推荐请简述网络营销的特点
  • 全网获客系统seo软文是什么
  • 用数据库做学校网站论文seo快速排名软件app
  • 上海做网站的费用国内新闻最新消息十条
  • 海外网站建设平台app拉新推广平台
  • 英文企业网站源码焊工培训技术学校
  • 自己做文字壁纸的网站谷歌竞价排名推广公司
  • 泰安人才网客服招聘西安网站seo服务
  • wordpress自动把内容变成图片seo优化分析