Mysql新增字段到大数据表导致锁表

在执行ALTER TABLE对一张200万记录的大表增加字段时,MySQL出现了锁表现象,导致服务不可用。经检查,由于ALTER TABLE操作与并发查询冲突,且客户端连接数达到上限。解决方法包括kill ALTER TABLE进程恢复服务,调整客户端连接数,以及选择低峰时段执行DDL。此外,注意检查未提交事务和监控服务器日志,预防类似问题。
摘要由CSDN通过智能技术生成

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">      年初跳完槽,终于可以安心开始写一些博客了。进入新的公司,还是有蛮多收获的。那就先记一个昨天遇到的问题吧。</span>

     昨天晚上7点左右,对一张表进行加字段,大概200多万条记录,字段90多个的大表,结果造成mysql锁表,进而导致服务不可用。执行语句如下:

ALTER TABLE `sc_stockout_order` ADD `route_remarks` VARCHAR(1024)  CHARACTER SET utf8mb4  NULL  DEFAULT 
   

     mysql配置如下:



打开服务期日志,发现有如下报错:

Cause: org.s
要在MySQL大数据中增加字段,可以通过以下步骤进行: 1. 首先,使用ALTER TABLE语句来修改结构。例如,要添加一个名为new_column的新字段,可以使用以下语句: ``` ALTER TABLE table_name ADD new_column data_type; ``` 其中,table_name是要修改的的名称,new_column是要添加字段名称,data_type是新字段的数据类型。根据需要选择合适的数据类型,如VARCHAR、INT、DATETIME等。 2. 如果需要在新字段上设置约束条件,比如唯一性约束或非空约束,可以在ALTER TABLE语句中添加相应的约束定义。例如,要在new_column字段添加非空约束,可以使用以下语句: ``` ALTER TABLE table_name MODIFY new_column data_type NOT NULL; ``` 在这个例子中,使用MODIFY关键字来修改字段定义,并添加了NOT NULL约束。 3. 当中存在大量数据时,修改结构可能需要一些时间。为了避免对生产环境的影响,可以考虑在非高峰时间进行该操作,或者使用在线DDL工具来避免锁定。 4. 在添加字段之后,可能需要更新已有数据以满足新字段对数据的要求。可以使用UPDATE语句来更新中的数据。例如,如果新字段要求唯一值,可以使用以下语句进行更新: ``` UPDATE table_name SET new_column = some_value WHERE new_column IS NULL; ``` 在这个例子中,将中new_column字段的空值设置为某个唯一值some_value。 通过上述步骤,可以在MySQL大数据中成功添加字段。需要注意的是,修改结构可能会对性能产生一定影响,因此在操作之前需要做好充分的测试和备份工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值