mysql 大表加索引或者往大表里面加字段
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
通常我们往大表里面添加索引或者添加新字段,不能直接执行,执行时间很长,造成锁表操作,必须借助于pt或者gh-ost等数据库管理工具添加。
例子如下:
pt-online-schema-change -h服务器地址 -u"用户名" -p"密码" --alter="加字段|索引语句 " --execute D=数据库名称,t=表名
实现的逻辑是基于原表创建一个临时表,然后对临时表(空表)进行添加索引或者添加字段操作,然后将表a的数据迁移到临时表b(为了保持这段时间新的操作不会影响一致性,使用了redo_log),然后两表换名,类似于重建表(或者收缩表)的语句:alter table T engine = innodb;----------能够去除老表空洞,页分裂问题,达到收缩表空间的目的
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341