这段时间项目里遇到有这样一个rake,所以就把它分享了。
valid_hotels_ids = [1, 2, 3, ...]
这是一个需要update的hotel表的id数组。
法一:逐一update
valid_hotels_ids.each do |id|
Hotel.update(id, "status = 'VALID'")
end
统计了一下。四万条数据, 15分钟, 这效率低得。
法二:批量update
valid_hotels_ids.each_index do |index|
if index == valid_hotels_ids.length - 1
Hotel.update_all("status = 'VALID'", "id in (#{valid_hotels_ids[(index-index%500)..index].join(',')})")
break#这句要加上,不然当length为500的倍数时,下面这句也会被执行,造成重复update
end
if (index + 1) % 500 == 0
Hotel.update_all("status = 'VALID'", "id in (#{valid_hotels_ids[index - 499..index].join(',')})")
end
end
统计了一下。同样是四万条数据,半分钟不到就OK了,可见批量update的效率之高喔。
分享到:
相关推荐
在用pymysql操作数据库的过程中,给sql语句传参碰到了很多问题,网上...多个传参用{0}占位符: field = '-' a = 'code' sql_talk="UPDATE cnp.Test set {0}='' where business_registration_code='{1}'".format(a,fi
每个VCH接收硬件资源,能够像管理其他传统虚拟机那样管理VCH,虚拟环境中可以有多个VCH。VCH还为开发人员提供了访问Docker的API。在VCH内运行的轻量级操作系统—称之为Project Photon。作为父操作系统。因此,在将...
在 MySQL中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 基础语法 UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表,语法格式为: UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句...
首先mysql更新数据的某个字段,一般这样...这里注意 ‘other_values’ 是一个逗号(,)分隔的字符串,如:1,2,3 如果更新多条数据而且每条记录要更新的值不同,可能很多人会这样写: foreach ($values as $id => $myv
多个参数传递 传入单个实体(JavaBean/Map) 传入多个实体 传入集合 使用场景 在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的...
要修改表中的一行数据,可以使用UPDATE语句,UPDATE可以用来修改一个表,也可以修改多个表。 修改单个表,语法格式: UPDATE 表名 SET 列名1=表达式1 [,列名2=表达式2 ...] [WHERE 条件] 说明: ● SET子句:根据...
农村管道基于Raspberry Pi的客户端/服务器系统,用于统一多个可用网络的带宽,以便在农村地区提供单个较高带宽的网络访问。建造这些安装和构建说明假定与Raspberry Pi(RPI)分开的运行Ubuntu(04.04)的开发机器...
3、execute通常用来执行一些具有单个或多个返回结果集的SQL语句。如select语句。如果有多个结果集,则可以通过调研getMoreResults成员方法不断一道下一个结果集,并通过成员方法getResultSet获取结果,通过成员方法...
装修更新单个模块的例子 使用Renovate Bot仅更新单个依赖项的示例存储库 仅允许检查依赖项debug更新,应忽略所有其他依赖项(例如chalk )。 这是文件的相关部分,我们禁用所有更新,但使用选项进行程序包debug除外...
多个结果集 - 提高性能创下了单个数据库执行多个查询。 自定义返回集合,代替名单中如ProductCollection的。 支持通过自定义的实体工厂创建复杂的实体对象。 提供程序模型,可以很容易添加其他数据库的支持。
本节讨论如何完成涉及多个数据表的DELETE和UPDATE操作。联结概念在用来完成这些操作的语句里扮演着极其重要的角色,这要求你对前面2.8节里讨论的内容有透彻的理解。 对于只涉及单个数据表的DELETE和UPDATE操作,...
2个用例是: 例如,将项目的样板代码从较旧的Ember版本更新到较新的版本,例如3.4.0至3.20.0。 这些被称为基本蓝图,ember-cli正式提供了3种类型: app , addon和glimmer 。 这与现有的ember init命令不同。 该...
可以监视多个基础分支(例如main , v1 ) 更新批处理 更新后脚本挂钩 建议的触发器: schedule , workflow_dispatch 。 最简单的设置 steps : - uses : actions/checkout@v2 # If you use Actions "push" for CI...
海鸥文件内容替换工具是一款不需要打开文件,即可替换单个文件或多个文件内容的小工具。它在替换时能够保证文件的安全性和完整性。替换字符的设置和替换文件的设置简单方便。 海鸥文件内容替换功能要点: 一、这是...
单列索引,即一个索引只包合单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。 创建索引时,你需要确保该索引是应用在SQL查询语的条件(一般作为WHERE 子句的条件)实际上,索引...
Delphi多表查询实现学生与教师管理,对学生和老师信息进行维护管理,可看作是一个简单的辅助教学管理系统,当然你可在此基础上进行功能扩展提升,以满足更多功能的需要。下面来看核心代码,完整源码请下载实例: ...
例如:会话选项卡能允许用户在单个Xftp窗口中创建和管理多个会话,无需将文件下载下来就可以直接编辑可编辑的文件。同时,用户还可以决定同时下载和上传的数量,以便以最大的性能进行传输。 (2)与终端模拟器...
例如:会话选项卡能允许用户在单个Xftp窗口中创建和管理多个会话,无需将文件下载下来就可以直接编辑可编辑的文件。同时,用户还可以决定同时下载和上传的数量,以便以最大的性能进行传输。 (2)与终端模拟器...
一种命令行工具,用于在一个窗口中运行多个任务,以及一些其他实用程序 安装 最好在全球范围内使用Archie,因此要安装,运行npm install -g archie-the-architect 指令 run 运行给定的项目 run-task 运行给定的任务...
Superdocker 允许您轻松管理多个 docker 主机。 这不适用于集群,这是为了在不同的环境中工作。 例如,假设您使用了三个环境: 本地 boot2docker 安装( boot2docker ) 单个网络 docker 主机( local ) 远程 ...