mysql 大数据表 添加字段 无法成功 求解
最近遇到的一个问题,需要在一张将近1000万数据量的表中添加加一个字段,但是直接添加会导致mysql 奔溃,请问有什么好的方法可以解决?回答: 1.别在业务高峰期做此事情,选择夜深人静的时候吧; 2.你的服务器IO能力糟糕,猜测的话为RAID5,以及内存也估计使用不足了,增加点SWAP; 3. 若是采用主备高可用模式,可以先备机执行,再切换服务的模式,再执行; 4.SESSION级别的临时表值加大点; 5.若MyISAM存储引擎,可以考虑一模一样的表结构及名称增加好字段,然后找个无业务访问 的时候,直接覆盖*.frm文件,再执行optimize local table ;-- 此方法慎用。
■网友
提供一个思路:1.备份数据;2.新建一张表,表结构跟以前的表类似,只是包含新添加的字段,且该字段为空;3.把旧表的数据导入到新表;4.删除旧表。原因:插入数据带来的资源消耗很多时候比维护表结构带来的开销小。
■网友
我一般是这么处理的1 一定要在业务低峰期做2 采用在线ddl工具,比如pt-osg3 如果第二步还不行,并且有从库的话,先在从库做好,再来个主从切换
■网友
其实有别的方法可以解决类似问题,主要看你新加的字段是什么类型。举个栗子,最近我们也发生了类似的情况,需要在表里增加一个状态字段。DBA死活不给我加字段,于是找了一个之前已经有的状态做按位运算。虽然代码改起来很蛋疼,但是问题解决了。说白了就是拿原来的字段拿来做扩展,比如用一个varchar字段改成text然后用这个字段做json。野路子多的是
■网友
使用pt-online-schema-change 工具,可以在线修改表结构,可以不锁表,详细用法去percona官网下载和使用文档
■网友
我的一个2.8亿条数据库表,增加一个字段,跑了一晚上,都没有跑完,我依然停掉了,崩溃!+-----+------+-----------+-------------+---------+-------+-------------------+----------------------------------------------------------------------------------------------+| Id | User | Host | db | Command | Time | State | Info |+-----+------+-----------+-------------+---------+-------+-------------------+----------------------------------------------------------------------------------------------+| 230 | root | localhost | s6sdk201601 | Query | 60297 | copy to tmp table | ALTER TABLE `csdk_app_behavior` ADD `theday` INT(11) NOT NULL DEFAULT \u0026#39;0\u0026#39; AFTER `createtime` |+-----+------+-----------+-------------+---------+-------+-------------------+----------------------------------------------------------------------------------------------+这是服务器cpu信息09:22:41 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle09:22:42 AM all 16.33 0.00 3.06 80.61 0.00 0.00 0.00 0.00 0.0009:22:42 AM 0 16.33 0.00 3.06 80.61 0.00 0.00 0.00 0.00 0.00
■网友
试试
■网友
1. 增大内存;2. 调节php.ini参数值;(上官网查各个参数意义)个人猜测,仅供参考。
推荐阅读
- 某些公司招聘要求中的精通mysql是啥程度
- 花瓣网和 Pinterest 在使用上有啥不同,Pinterest 采集工具咋添加到浏览器上
- 游戏每个活动都要在后端新建数据表吗
- 宝宝|吃不对没营养还易积食宝宝辅食应该怎么添加?吃对了护脾健胃
- 为啥支付宝不在WP版本添加余额宝功能,微信WP5.1已经可以使用理财通了,马云对WP无爱
- mysql myisam引擎,插入unique数据用不满cpu等硬件是啥原因
- 关于 lua 使用c++对象 并添加自定义属性的内存管理问题
- 如果不断地添加Facebook上的“共同好友”,有没有可能与全世界所有活跃用户建立联系
- 趣头条|【15周年】为爱车添加免费的防冻玻璃水
- 怎样通过数据库来管理大量EXCEL数据表,实现以表为单位对这些数据表的检索、查询、更新等功能
