MySQL-大数据表添加索引

1.问题

为了提升数据库的查询速度需要在数据表中的字段上添加索引,但是表中的数据量很大的时候,直接添加索引会导致数据库崩溃或者锁表时间太长而影响对数据库的操作

2.解决方案

  1. 创建一张临时的新表,复制旧表的结构及其索引
create table new_table like old_table;
  1. 新表中添加新增的字段,增加索引
      ALTER TABLE `table_name`
      ADD COLUMN `num` int(10) NOT NULL DEFAULT 0 AFTER `addtime`;
      
      ALTER TABLE `table_name` ADD INDEX `num` (`num`);
  1. 复制旧表的数据到新表
 insert into new_table(id,name,content,addtime) select id,name,content,addtime from old_table;

注意:执行这步操作的时候因为数据量比较大会非常耗时,之后进来的数据也需要导入到这张新表中,所以尽量选择低峰时间进行操作,以减少数据差距
5. 修改旧表的名字,然后修改新表的名字为旧表的名字
需要做好数据的备份,使用一段时间后没问题了再进行旧表的删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值