锁定老帖子 主题:update 速度慢
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-11-21
UPDATE ONE T SET T.AGE = (SELECT T2.AGE FROM TWO T2 WHERE T2.ID=T.ID ); ONE TWO 表都是百万级别的数据。怎么样更新速度比较快。求最快的方法 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-11-22
UPDATE ONE T,TWO T2 SET T.AGE = T2.AGE WHERE T2.ID=T.ID
这个比你的快的不知多少陪 |
|
返回顶楼 | |
发表时间:2012-11-22
最后修改:2012-11-23
如果是所有数据都要更新,create table XXX as select T.*,T2.AGE
from ONE T,TWO T2 WHERE T2.ID=T.ID ,然后将原来表删掉,把XXX改为原来表的名称,仅限全表更新亿级别数据更新数据暂时我见过的最快的了。 |
|
返回顶楼 | |
发表时间:2012-11-22
如果是涉及业务升级的话,推荐重新建表改名的方法,这样可以提前做,正式升级的时候只需要考虑增量数据即可。
|
|
返回顶楼 | |
发表时间:2012-11-22
abc-127 写道 UPDATE ONE T,TWO T2 SET T.AGE = T2.AGE WHERE T2.ID=T.ID
这个比你的快的不知多少陪 请问下,这样子的写法是哪个版本支持的,我在我的机器上使用报错。 我用的oracle 10g |
|
返回顶楼 | |
发表时间:2012-11-22
shanhucc 写道 abc-127 写道 UPDATE ONE T,TWO T2 SET T.AGE = T2.AGE WHERE T2.ID=T.ID
这个比你的快的不知多少陪 请问下,这样子的写法是哪个版本支持的,我在我的机器上使用报错。 我用的oracle 10g 10g同问 |
|
返回顶楼 | |
发表时间:2012-11-22
最后修改:2012-11-22
coloforlia 写道 shanhucc 写道 abc-127 写道 UPDATE ONE T,TWO T2 SET T.AGE = T2.AGE WHERE T2.ID=T.ID
这个比你的快的不知多少陪 请问下,这样子的写法是哪个版本支持的,我在我的机器上使用报错。 我用的oracle 10g 10g同问 这样写法真是高人 |
|
返回顶楼 | |
发表时间:2012-11-22
sundoctor 写道 coloforlia 写道 shanhucc 写道 abc-127 写道 UPDATE ONE T,TWO T2 SET T.AGE = T2.AGE WHERE T2.ID=T.ID
这个比你的快的不知多少陪 请问下,这样子的写法是哪个版本支持的,我在我的机器上使用报错。 我用的oracle 10g 10g同问 这样写法真是高人 db2 同问 |
|
返回顶楼 | |
发表时间:2012-11-23
hehez 写道 sundoctor 写道 coloforlia 写道 shanhucc 写道 abc-127 写道 UPDATE ONE T,TWO T2 SET T.AGE = T2.AGE WHERE T2.ID=T.ID
这个比你的快的不知多少陪 请问下,这样子的写法是哪个版本支持的,我在我的机器上使用报错。 我用的oracle 10g 10g同问 这样写法真是高人 db2 同问 没听过吧,没用过吧,傻眼了吧你们都,我也傻眼了,现在还没返过神来,我计划周六日好好休息两天醒醒神儿 |
|
返回顶楼 | |
发表时间:2012-11-23
java_frog 写道 hehez 写道 sundoctor 写道 coloforlia 写道 shanhucc 写道 abc-127 写道 UPDATE ONE T,TWO T2 SET T.AGE = T2.AGE WHERE T2.ID=T.ID
这个比你的快的不知多少陪 请问下,这样子的写法是哪个版本支持的,我在我的机器上使用报错。 我用的oracle 10g 10g同问 这样写法真是高人 db2 同问 没听过吧,没用过吧,傻眼了吧你们都,我也傻眼了,现在还没返过神来,我计划周六日好好休息两天醒醒神儿 是不是可以这样子写 UPDATE T SET T.AGE = T2.AGE FROM ONE T, TWO T2 WHERE T2.ID=T.ID |
|
返回顶楼 | |