日期:2014-05-18  浏览次数:20446 次

据说阿里的面试题:1T的表要更新,怎么优化?
单表1T,要更新,该怎么优化。
大家发表一下见解。

------解决方案--------------------
能见到说下表结构吗 以及所以情况?
------解决方案--------------------
这个要看更新的语句是怎么样
------解决方案--------------------
一句update肯定是不行D,

需要依主键字段分批更新,如5000笔为一个批次更新.

------解决方案--------------------
这显然是在让你分析各种情况下的数据处理方案
直接就能知道你是否有大数据处理经验
------解决方案--------------------
探讨
一句update肯定是不行D,

需要依主键字段分批更新,如5000笔为一个批次更新.

------解决方案--------------------
给判断条件(是否主键)加索引,再分批更新。

------解决方案--------------------
万一中间的步骤出错了,怎么回滚,怎么保持和一句update一样的数据一致性?
觉得这个应该是考量的要点吧
------解决方案--------------------
聽講可以通過分区索引的方法來update,中間還要加事務哦
------解决方案--------------------
采用while循环分批更新
------解决方案--------------------
再顶
------解决方案--------------------
学习sql优化。。这很多公司都会问到。在写sql时怎么优化的
------解决方案--------------------
1T的表 什么表这么大。
这么大的表管理、效率都不好弄 。
即使使用分区 ,分1000区 每个区还有1G的数据。 

------解决方案--------------------
需要巨型计算机
------解决方案--------------------
考虑到实际使用的状况,这么大的表,除了分区之外,分表也是一种处理方法。
切分成多个较小的表后,分别进行更新处理。继续使用小事务,进行循环处理。
也可以降低锁表,及资源的占用问题



------解决方案--------------------
1T的表,更新一条记录,只要索引对,还是很快的吧
如果符合更新条件的记录数很多,才需要特别考虑。表是否随时被使用,也是一个前提