欢迎投稿

今日深度:

海量数据表,更改表字段类型问题,

海量数据表,更改表字段类型问题,


  最近服务器上有个数据表,在设计的时候主键是int自增长的,但是最近都没有进入数据,一查发现是表的数据量已经达到20多亿行了。int类型的最大也就大概21亿多,显然是插不进数据,唯有将主键改为bigint型,一开始想更改主键类型  就用一般常想到的方法 先删除主键,再将字段类型改为bigint,然后添加上主键,   alter table drop  index  alter table alter column id bigint  ,后来对一个上亿的表进行测试发现时间很慢,这道没什么,关键是涉及到alter操作日志暴增,很快盘就塞满了,只能中断。

  后来一个同事提议可以新建一个表,只是主键是bigint,其他和原表还是一样,将数据导过去就行,用最基本的select、 insert 操作就行,虽然这也耗时,但是这样日志基本不写,而且由于这个表存的都是外键的key值所以相对可能比alter操作还快,后来试试,这个方式的确不错。而且每次循环小批量插入,操作安全,对表可能的损害见到最小,最后改个表名就行了。

  其实有时候想想用最简单的操作,反而效果是好的,当然如果数据量不大还是写几句alter语句执行就行,不用建表删表那么麻烦。

 

    

www.htsjk.Com true http://www.htsjk.com/teradata/33193.html NewsArticle 海量数据表,更改表字段类型问题,   最近服务器上有个数据表,在设计的时候主键是int自增长的,但是最近都没有进入数据,一查发现是表的数据量已经达到20多亿行了。int类型的最...
相关文章
    暂无相关文章
评论暂时关闭