mysql如何为大表新增字段或索引

 更新时间:2025年03月08日 16:20:46   作者:Ability Liao  
解决MySQL大表增加或增加索引操作超时的问题,可以通过建新表、加字段或索引、导数据到新表、改表名等步骤来实现,可以分批导入数据以防止超时,同时,还介绍了如何查询表中的所有字段以及在IDEA中设置执行超时时间的方法

问题

mysql 为大表增加或增加索引等操作时,直接操作原表可能会因为执行超时而导致失败。

解决办法如下。

解决办法

(1)建新表-复制表A 的数据结构,不复制数据

create table B like A;

(2)加字段或索引-表B加上新字段或索引

(3)导数据到新表-把原有数据导入新表

  • 未新增字段时
insert into B select * from A [where 条件]
  • 添加了新字段时。
  • 假设添加字段名为data_code(默认值为空),且字段位于id之后
insert into B select id, '' data_code, 其他旧字段 from A [where 条件]

数据量达到几千万时,可以添加where 条件,分批将数据导入到新表。防止数据导入超时。

(4)改表名-修改表A 的名称为A_old,修改B表的表名为A

备注

  • (1)MySQL查询一个表中的所有字段的方法
select CONCAT(COLUMN_NAME ,',') from information_schema.COLUMNS where table_name = '表名' and table_schema = '库名';
  • (2)可以在idea中的database上执行sql,上面可以设置执行超时时间。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • MySQL 基础常用命令总结

    MySQL 基础常用命令总结

    这篇文章主要介绍了MySQL 的基础常用命令,在执行语句的时候,很多命令都是必须记住的,想具体了解的小伙伴请参考下面文章内容
    2021-09-09
  • MySQL中的锁机制详解之全局锁,表级锁,行级锁

    MySQL中的锁机制详解之全局锁,表级锁,行级锁

    MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并发事务控制,本文给大家介绍MySQL之锁机制详解:全局锁,表级锁,行级锁,感兴趣的朋友一起看看吧
    2025-06-06
  • MySQL MyISAM 与InnoDB 的区别

    MySQL MyISAM 与InnoDB 的区别

    这篇文章主要介绍了MySQL MyISAM与InnoDB 的区别,帮助大家更好的理解和使用MySQL的存储引擎,感兴趣的朋友可以了解下
    2020-09-09
  • MySQL之解决字符串数字的排序失效问题

    MySQL之解决字符串数字的排序失效问题

    这篇文章主要介绍了MySQL之解决字符串数字的排序失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • MySQL中的窗口函数使用及说明

    MySQL中的窗口函数使用及说明

    这篇文章主要介绍了MySQL中的窗口函数使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 浅析一个MYSQL语法(在查询中使用count)的兼容性问题

    浅析一个MYSQL语法(在查询中使用count)的兼容性问题

    本篇文章是对MYSQL语法(在查询中使用count)的兼容性问题进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • 简单分析MySQL中的primary key功能

    简单分析MySQL中的primary key功能

    这篇文章主要介绍了MySQL中的primary key功能,包括讲到了其对InnoDB使用的影响,需要的朋友可以参考下
    2015-05-05
  • Mysql8.0不存在mysql.proc表的解决

    Mysql8.0不存在mysql.proc表的解决

    MySQL 8.0中官方移除了proc表,MySQL 5.7版本中还是存在proc表的,本文就介绍MySQL 8.0的替代方案,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • MySQL字段为 NULL的5大坑

    MySQL字段为 NULL的5大坑

    本文主要介绍了MySQL字段为 NULL的5大坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Mysql及Navicat中设置字段自动填充当前时间及修改时间实现

    Mysql及Navicat中设置字段自动填充当前时间及修改时间实现

    这篇文章主要给大家介绍了关于Mysql及Navicat中设置字段自动填充当前时间及修改时间实现的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-07-07

最新评论