仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1698|回复: 10
打印 上一主题 下一主题

[学习教程] MYSQL编程:将一个更新分别为几个批次

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:06 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的数据库服务,它可以支持多变的需求。问:我想以一次5,000行的体例批量更新一个年夜型表,但我不晓得如何支解数据。该表不包括增量数字或整数主键。如何才干在坚持优秀功能的同时完成数据更新呢?
答:假如晓得哪些行还没有被更新,您可使用复杂的谓词来扫除已更新的行,ROWCOUNT设置能够匡助您批量支解数据。以下的代码清单申明了怎样利用该设置:
SETROWCOUNT1000
WHILE(1=1)BEGIN
BEGINTRANSACTION
UPDATE...set...,MyLastUpdate=date,...WHERE
MyLastUpdate<date
--更新1000未更新行
IF@@ROWCOUNT=0
BEGIN
COMMITTRANSACTION
BREAK
END
COMMITTRANSACTION
END
在指定的行数前往后,ROWCOUNT将使SQLServer中断查询处置。这项手艺很有效,由于它制止了大批更新而至的并发射中;更新中的行数越少,更新义务使其他用户不克不及会见该数据的大概性就越小。分离事件日记备份,这一办法还可使您的事件日记的巨细降至最低。
假如没有辨认已更新行的机制,您可使用游标遍历一切数据并提交每一个x值。可是,游标占用服务器资本的工夫一般要多于基于汇合的语句。
―MicrosoftSQLServer开辟团队
”由于MySQL已经是一个运行了众多知名Web2.0网站的数据,包括Craigslist、Digg、Wikipedia和Google等,或许我们可以说每一个Web2.0公司实质上是一个使用MySQL数据库的公司。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 12:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表