MySQL上百万条数据怎么加字段跟索引

您所在的位置:网站首页 sql设置索引但不是字段怎么办呢 MySQL上百万条数据怎么加字段跟索引

MySQL上百万条数据怎么加字段跟索引

2024-06-28 04:54:03| 来源: 网络整理| 查看: 265

MySQL上百万条数据怎么加字段跟索引

开发中,数据库加字段属于常规操作,加完字段如果牵扯到查询的话最好还得加索引,如果数据只有几千条或者几万条可以直接执行sql添加字段跟索引,但是如果碰到上百万上千万条数据,那就不能用这种方式了,因为加字段和索引都会锁表,会影响接口服务不可用

因此,在保证对接口影响最小的情况下可以使用下面这种方式:思路是新建一个在原表结构上添加新字段及新索引的新表结构,然后插入原表的数据,修改原表表名,紧接着修改新表表名,改表名速度很快,因此对接口服务的影响会降低到忽略不计,操作过程如下:

#原表结构 CREATE TABLE `formal_table` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `warning_num` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '故障数量', `pic_num` int(11) unsigned NOT NULL COMMENT '图片数量', `event_ids` text NOT NULL COMMENT '相关事件ids', `user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '执行人id', `create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间戳', `del_state` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态:1正常 2删除', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1010869 DEFAULT CHARSET=utf8 COMMENT='任务记录表'; #新表结构,添加state字段及相关索引 CREATE TABLE `formal_table_new` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `warning_num` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '故障数量', `pic_num` int(11) unsigned NOT NULL COMMENT '图片数量', `event_ids` text NOT NULL COMMENT '相关事件ids', `state` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '事件状态:1已处理 2未处理', `user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '执行人id', `create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间戳', `del_state` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态:1正常 2删除', PRIMARY KEY (`id`), KEY `union_index` (`del_state`,`state`) USING BTREE COMMENT '联合查询索引' ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='任务记录表'; #给新表插入原表数据 insert into formal_table_new select * from formal_table; #将原表改为formal_table_old ALTER TABLE formal_table RENAME TO formal_table_old; #将新表名改为原表 ALTER TABLE formal_table_new RENAME TO formal_table;

对照旧表formal_table_old跟新表formal_table是否有不一致的数据,没有的话删除formal_table_old

drop table formal_table_old

OK,表结构调整完毕



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭