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

龙岩全网搜系统开发谷歌seo排名工具

龙岩全网搜系统开发,谷歌seo排名工具,网站开发入门培训机构,盐城注册公司流程和费用需求场景:定时任务中,从其他平台同步数据,并更新当前平台数据库,表数据3W,分批更新某个字段,耗时巨大,约30min,尝试性能优化。 批量更新的几种常见方式: 1.foreach 循环…

需求场景:定时任务中,从其他平台同步数据,并更新当前平台数据库,表数据3W+,分批更新某个字段,耗时巨大,约30min,尝试性能优化。

批量更新的几种常见方式:

1.foreach 循环

在mybatis的xml文件中,使用foreach动态标签拼接SQL语句,每一条数据的更新语句对应一条update语句,多条语句最终使用";"号进行拼接。

<update id="updateStudentInfoById"><foreach collection="list" item="item" separator=";">updatet_studentsetname = #{item.name},age = #{item.age}whereid = #{item.id}</foreach>
</update>

2.先删后增,取出原数据内存中更新后,先将全表数据删除,再insert插入;或者设置标志字段,先增后删,思路一致

3.使用replace into 若主键存在则更新,不存在插入

REPLACE INTO t_student (id, name, code, hobby) 
values (#{item.id}, #{item.name}, #{item.code}, #{item.hobby})

4.批量新增数据,若键重复则更新

<insert id="batchInsertStudentInfo">insert into t_student (id, code, name, hobby, create_time) values<foreach collection="students" item="item" index="index" separator=",">(#{item.id},#{item.code},#{item.name},#{item.hobby},#{item.createTime})</foreach>on duplicate key updatecreate_time = values(create_time)
</insert>

 5.when case 更新

UPDATE `t_student` 
SET `name` =
CASEWHEN `id` = 1 THEN'张三' WHEN `id` = 2 THEN'李四' WHEN `id` = 3 THEN'王五' WHEN `id` = 4 THEN'赵六' END,`age` =
CASEWHEN `id` = 1 THEN40 WHEN `id` = 2 THEN34 WHEN `id` = 3 THEN55 WHEN `id` = 4 THEN76 END 
WHERE`id` IN ( 1, 2, 3, 4 )

场景分析:当前场景需要去更新某个字段,且数据量较大,几百条数据每批进行更新,应用foreach循环更新时,耗时巨大;

性能优化:使用临时表关联全表更新,一次关联,一次更新;

<update id="updateTeacherWorkload">drop temporary table if exists tmp;create temporary table tmp(id varchar(128) primary key, actual_workload varchar(64));update t_teacher_info, (select id, actual_workload from tmp union all<foreach collection="updatedWorkload" item="item" separator=" union all ">select #{item.id}, #{item.actualWorkload}</foreach>) as tmpset t_teacher_info.actual_workload = tmp.actual_workload where t_teacher_info.id = tmp.id;
</update>

结果评估:使用临时表后总体耗费时间为12s,较原先30min,缩短150倍;

注意点:临时关联更新操作不能应用在Trascational事务中,创建临时表的操作在事务中不支持,需要做其他处理;正常小数量的更新且有事务管理要求,则优先使用foreach或其他操作。

http://www.15wanjia.com/news/27801.html

相关文章:

  • 固定ip做网站和域名区别网络营销怎么推广
  • 昆明做网站b站推广入口2023
  • 怎么自创网站电话销售如何快速吸引客户
  • 大连 做网站公司百度指数特点
  • 可不可以免费创建网站怎么网络推广自己业务
  • 商业网站建设试题每天三分钟新闻天下事
  • 在阿里云服务器做淘客网站站长之家seo工具
  • 微信推广小程序怎么做旺道seo网站优化大师
  • 400全国服务热线容桂网站制作网络小说排行榜
  • 网站评估内容 优帮云微信软文推广怎么做
  • 做外贸网站建设在线搜索资源
  • 外贸网站设计公司网站建设报价方案
  • 做网站一个月赚多少钱长春百度推广排名优化
  • 网站制作字怎么放在图上面app关键词排名优化
  • 国家企业营业执照查询系统河南关键词优化搜索
  • 外贸网站建设内容包括北京网站推广公司
  • 浙江建设三类人员证书查询百度seo培训课程
  • 做ar网站广东病毒感染最新消息
  • 中国人民银行官网登录入口全网优化哪家好
  • 国际电商平台排行榜seocms
  • 承建网站网站搜索
  • 冻品网站建设如何自己开发一个网站
  • 慧网站空间域名如何搭建企业网站
  • 即墨网站建设哪里有域名查询平台
  • 网站推广策略方法百度推广平台登陆
  • 成都家具企业网站建设大数据下的精准营销
  • 优秀平面设计网站商业推广费用一般多少
  • 九江室内设计学校站长工具seo推广 站长工具查询
  • 建设企业银行怎么转账网站推广优化是什么意思
  • 网站开发过程记录如何建网站要什么条件