首页 > 其他分享 >千万级数据量表如何快速添加索引/字段

千万级数据量表如何快速添加索引/字段

时间:2023-03-31 11:46:33浏览次数:30  
标签:千万级 索引 数据量 新表 数据 旧表

添加字段语句

ALTER TABLE id_t ADD title(255) DEFAULT '' COMMENT '标题' AFTER id;

问题

线上的一张表如果数据量很大千万级,执行加字段加索隐操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就很有风险了。

解决一

1. 创建一个临时的新表,首先复制旧表的结构(包含索引) 

2. 给新表加上新增的字段

3. 把旧表的数据复制过来

4. 删除旧表,重命名新表的名字为旧表的名字

不过这里需要注意,执行第三步的时候,可能这个过程也需要时间,这个时候有新的数据进来,所以原来的表如果有字段记录了数据的写入时间就最好了,可以找到执行这一步操作之后的数据,并重复导入到新表,直到数据差异很小。不过还是会可能损失极少量的数据。

所以,如果表的数据特别大,同时又要保证数据完整,最好停机操作。

解决二

一般千万级数据表的项目会是集群部署及主从架构,可以在备库中添加字段然后主从切换

解决三

把表进行同步拆分,重新常见索引及表把数据同步过去可以写接口也可以用脚本

其他

使用第三方在线改字段的工具

 

 

以上是针对大表增加字段或索引时候的解决方案仅供参考

 

标签:千万级,索引,数据量,新表,数据,旧表
From: https://www.cnblogs.com/cgy-home/p/17275794.html

相关文章

  • 谷歌网站收录优化指南:让搜索引擎更快找到您的网站!
    谷歌是全球最大的搜索引擎,让您的网站在谷歌中获得更高的收录和排名显得尤为重要。为了帮助您轻松实现这一目标,本文将为您提供一份谷歌网站收录优化指南,让您的网站更快被搜索引擎找到!一、确保网站内容高质量且易于抓取保持内容的原创性:谷歌对原创内容给予更高的权重,因此务必确保您的......
  • ES索引字段主要属性配置
    index属性analyzed:分词后索引,可搜索。not_analyzed:字段值不分词,以单个关键词进行索引。no:字段不索引,当然也就不能搜索。store属性属性store默认false,当某个数据字......
  • 倒排索引
    正排索引:key-value中,通过key去寻找value。倒排索引:通过value(或包含value)去寻找对应的key。正排索引需要首先对全局进行扫描遍历,进而从中做筛选;而倒排索引可以仅抽......
  • 读取数据库返回 ResultSet的时候,遍历数据用while (rs.next())数据量大的时候很慢。
    在做中台数据的时候,需要同步其他部位的系统的数据,目前同步数据要和其他部位的数据库对接,对方数据库为Oracle在读取的过程中,数据量比较大,已经做了分页处理,分页大小为1000行......
  • ZoomEye:网络空间搜索引擎
    ZoomEye是一个强大的搜索引擎,允许用户查找有关设备、网站以及它们使用的服务和组件的信息。通过两个检测引擎,用户可以不断地探索和识别网络空间中的设备和网站。ZoomEye的......
  • MySQL 中索引是如何实现的,有哪些类型的索引,如何进行优化索引
    MySQL中的索引前言索引的实现哈希索引全文索引B+树索引索引的分类聚簇索引(clusteredindex)非聚簇索引(non-clusteredindex)联合索引覆盖索引回表查询......
  • MySQL索引、事务与储存引擎
     一、MySQL索引1.1索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向......
  • 索引缺失和索引碎片
      SELECT[database_name]=db.[name],[table_name]=REVERSE(SUBSTRING(REVERSE(statement),2,(CHARINDEX('[',REVERSE(statement),2))-2)),[index......
  • SQL Server 索引类型及意义
    一、什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQLServer中的数据记录也是按页存放的,每页容量一般为4K。为了加快查找的速度,汉语字(词)典......
  • MySQL联合索引创建规则
    1、索引应该按照最常用于查询的列的顺序创建。这样可以最大程度地提高查询性能。2、如果查询中包含的列与索引中的列顺序不一致,则无法使用索引。因此,如果您有多个查询,每个......