社区
MS-SQL Server
帖子详情
如何快速修改 表字段 的属性,前提是这个表里有上千万条数据。
wxylvmnn
2016-12-14 01:40:26
SQL2012
比如,字段A,现在定义是INT,我想给改成NVARCHAR(100)
最普通的做法是执行,
ALTER TABLE 表 ALTER column 字段A NVARCHAR(100);
但是现在的问题是,这个表中有上千万条数据,这么执行的话,速度慢的不行不行的了,刚才执行了近半个小时,没完事,被我强制终了了。
有什么好的方法。。。
...全文
751
6
打赏
收藏
如何快速修改 表字段 的属性,前提是这个表里有上千万条数据。
SQL2012 比如,字段A,现在定义是INT,我想给改成NVARCHAR(100) 最普通的做法是执行, ALTER TABLE 表 ALTER column 字段A NVARCHAR(100); 但是现在的问题是,这个表中有上千万条数据,这么执行的话,速度慢的不行不行的了,刚才执行了近半个小时,没完事,被我强制终了了。 有什么好的方法。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
卖水果的net
版主
2016-12-14
打赏
举报
回复
增加一列,批量更过来,比如每次 1000 行; 再清空原来的列,再修改类型,再批量更新来,最后删除刚才的表; PS:如是原来的列上有索引(主键),要先删除索引(主键),并且注意非空约束;
足球不是方的
2016-12-14
打赏
举报
回复
如果只是修改1列或者2列,可以增加1,2列,类型是需要改动的类型,把相应列的数据更新到此列,可以做个触发器,最后删除以前的列,吧新增的列改成以前列的列名
闭包客
2016-12-14
打赏
举报
回复
在数据量大的数据库里面执行耗时长的事务时,有一种分割成若干小事务的做法。 比如你在现有表的基础上创建一个新表,把列改成 NVARCHAR(100) 然后把数据以一万条为一个事务导入进去,这样即使某个事务意外中断,以后还可以接着以前的进度继续导入。 在数据完全导入完毕之后,把旧表改名,新表使用旧表的名称。
LongRui888
2016-12-14
打赏
举报
回复
建议还是在业务比较空闲时,特别是晚上操作吧,最好是停服维护时执行。 这个说白了这个就类似于一个update语句,更新几千万的数据,加上类型要变化,速度会比update 几千万数据更慢一些。
LongRui888
2016-12-14
打赏
举报
回复
在修改字段类型时,会检查每一列的值,进行类型转换,把值改为 字符串的值,而且会加上sch-m锁,防止其他会话来修改。 加上你的数据量非常大,所以速度非常慢。 首先,建议在alter 语句后面加上online,其次,别在现在改,最多也就是在晚上维护期间让运维改一下。 还有个办法就是,创建一张新表,把字段改为varchar,然后把原始表的数据导入到新的表里,最后把原始表truncate,把新表的表名改成原始表。 为了防止在这个期间有数据修改,可以先锁定整张表,方式表被修改。
学海无涯-回头是岸
2016-12-14
打赏
举报
回复
update T1 SET A=CAST(A AS NVARCHAR(100)) 再 ALTER TABLE 表 ALTER column 字段A NVARCHAR(100);
[MySQL]
数据
类型以及
表
的
属性
与操作大全
该内容围绕 MySQL
数据
库操作展开,涵盖
表
操作、
数据
类型和
表
的约束三大部分。
表
操作包含
表
的增删查、
修改
及使用案例,能满足对
表
基本的创建、删除、查看和
修改
需求。
数据
类型介绍了数值、字符串、日期时间、enum 和 set 类型,详细说明了整数、bit、float、decimal 等不同类型特点,以及 char 和 varchar 的差异。
表
的约束涉及空
属性
、默认值等多个方面,讲解了主键、自增长、唯一键和外键的设置与删除等内容,为构建规范、高效的
数据
库
表
结构提供了全面指导。
动态增加
数据
库
表
字段
项目组会议上讨论的关于不定
字段
数目的
数据
库
表
问题并没有结果,今天继续分析之后发现问题可能还更大。当时讨论的结果是可能采用四种技术: 动态增加
数据
库
表
字段
预留足够的空白
字段
,运行时作动态影射 用xml格式保存在单
字段
里 改列为行,用另外一个
表
存放定制
字段
【一】 现在我们来分析一下四种技术的优劣,不过首先可以排除的是第一点动态增加
字段
的方法,因为在实际操作时候几乎是不可能...
mysql
数据
表
字段
繁体转简体_大
数据
分析工程师入门4SQL进阶
上篇《大
数据
分析工程师入门3--SQL基础》以近1万字的篇幅给大家将SQL的基础内容系统性的讲解了一遍。本文将在其基础之上稍作补充,主要讲讲
数据
分析工作中可能会用到的SQL进阶知识点。主要讲解思路如下:第1部分:DDL。主要讲解MySQL中针对库、
表
、
表
字段
的创建、
修改
和删除等相关操作。第2部分:索引。内容包括为何要建立索引,如何建立不同的索引,索引的查看和删除,以及索引的注意事项和建立...
SQL多
表
多
字段
比对方法
文章目录
表
-
表
比较整体思路找出不同
字段
的明细T1/T2两
表
ID相同的部分,是否存在不同NAME两
表
的交集与差集:判断两
表
某些
字段
是否相同两
表
的交集与差集:找出T2
表
独有的id
字段
-
字段
比较判断两个
字段
间一对多或多对一的关系证明id
字段
不是主键证明id, name
字段
不是联合主键
数据
准备
表
-
表
比较 整体思路 两张
表
条数一样 条数相同是
前提
,然后比较
字段
值才有意义 两
表
字段
值完全相同【两
表
所有
字段
的值相同】 两
表
所有
字段
union后,条数与另一张
表
条数一样 两
表
字段
值部分相同【两
表
部分
字段
的值相
MySQL单
表
数据
量过千万,采坑优化记录,完美解决方案
问题概述 使用阿里云rds for MySQL
数据
库(就是MySQL5.6版本),有个用户上网记录
表
6个月的
数据
量近2000万,保留最近一年的
数据
量达到4000万,查询速度极慢,日常卡死。严重影响业务。 问题
前提
:老系统,当时设计系统的人大概是大学没毕业,
表
设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!! 我尝试解决该问题,so,有个这个日志。 方案概述 方案一:优化现有mysql
数据
库。优点:不影响现有业务,
MS-SQL Server
34,837
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章