一张百W条数据的用户表,要某时间点同步更新大部分字段。请问有什么成熟的解决文案或思路呢?求大牛指教教!
根本的方案,我觉得应该业务规范表的索引,尽量少索引, 用事务批量更新,update语句的where 尽快不要in关键字查询,最好用连表update.
首先,谢谢你的建议。
其次,我同意你后半句的建议,不过背景是:业务需求很简单把一种数据源的一张表的数据更新到另一种数据源的一张表中。比如把oracle中的user表用记程序自动更新到sql server中的user表,可能通同步的是部分字段。难点在于,user表中的数据如果达到了几十W的量级,批量更新时可能会引起表级死锁。
@lonely_rain: 根据你所说的情况,已经不能用Update了, 就是delete 然后在insert。 因为我们现在也经常操作上KW的数据量。主要还要看服务器的配置。 还要根据业务看两个系统架构的设计, 比如是否即时更新、多次同步的数据量、再对sql user表进行分表等等。 选择一种跟你们系统业务适合的方案。