【用Percona Toolkit给mysql大表在不锁表的情况下建索引】

这篇具有很好参考价值的文章主要介绍了【用Percona Toolkit给mysql大表在不锁表的情况下建索引】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装Percona Toolkit

共分为两步骤:

  1. 配置仓库
    安装文档1
    【用Percona Toolkit给mysql大表在不锁表的情况下建索引】,mysql,数据库,dba
  2. 安装
    安装文档2
    【用Percona Toolkit给mysql大表在不锁表的情况下建索引】,mysql,数据库,dba

建立索引

  1. 由于mysql8默认使用的是caching_sha2_password,认证方式,而Percona Toolkit在centos7中使用的perl-dbd-mysql版本目前是4.023,暂时不支持这种认证方式,因此需要在mysql中新建一个以mysql_native_password认证的用户
--创建新的用户:
create user 用户名@'%' identified WITH mysql_native_password BY '密码';
grant all privileges on *.* to 用户名@'%' with grant option;
flush privileges;
  1. 建立索引
pt-online-schema-change h=mysqlIP,P=mysql端口,D=数据库名,t=表名 --user=刚建的用户名 --ask-pass --alter "add index idc_edge_index(uid,service,create_time)" --execute

根据提示输入密码即可。

注:如果是本机docker部署的mysql,mysqlIP请用本机docker0(查看方式为ip a | grep docker0)的IP,用localhost可能无法连接。文章来源地址https://www.toymoban.com/news/detail-726875.html

到了这里,关于【用Percona Toolkit给mysql大表在不锁表的情况下建索引】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql小表驱动大表

    摘要: 小表驱动大表是优化器从成本考虑后做出的选择 判断谁做小表时,是比较算上过滤条件后的字段+条数的总大小 小表驱动大表在执行计划中体现,第一行是小表第二行是大表。不是在show warnings体现 left join时右表过滤条件在where,优化器会转为inner join小表驱动大表。

    2024年02月08日
    浏览(37)
  • MySQL如何查看锁表

    在MySQL数据库中,当多个事务同时请求对同一行数据进行修改时,就会发生锁表现象。锁表可以确保数据的一致性和完整性,但如果锁定时间过长或者锁定范围过大,就可能导致性能问题。因此,了解如何查看和分析锁表情况对于优化数据库性能至关重要。 在本文中,我们将

    2024年02月03日
    浏览(35)
  • mysql锁表原因及解决

    锁表发生在 insert、update、delete 中; 锁表的原理是数据库使用独占式 锁机制 ,当执行上面的语句时,对表进行锁住,直到发生 commit 或者 rollback 或者 退出数据库用户 ; 锁表的原因: A程序执行了对 table_1 的 insert、update、delete ,并还未 commit 时,B程序也对 table_1 进行 inser

    2024年02月09日
    浏览(39)
  • mysql 为大表新增字段或索引

    mysql 为大表增加或增加索引等操作时,直接操作原表可能会因为执行超时而导致失败。解决办法如下。 (1) 建新表 -复制表A 的数据结构,不复制数据 (2) 加字段或索引 -表B加上新字段或索引 (3) 导数据到新表 -把原有数据导入新表           未新增字段时      

    2024年01月18日
    浏览(39)
  • mysql什么情况下会锁表

    在MySQL中,当对表进行写操作(如INSERT、UPDATE、DELETE)时,需要对相关的数据行加锁以确保数据的一致性和完整性。在某些情况下,MySQL需要锁定整个表而不是部分行,这种情况下会锁定整个表,导致其他会话不能访问表。 1.使用ALTER TABLE、TRUNCATE TABLE等语句对表进行结构性修

    2024年02月12日
    浏览(41)
  • 使用NineData实现亿级别MySQL大表迁移

    MySQL 作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和 DBA 对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及

    2024年02月12日
    浏览(39)
  • Mysql、Oracle 中锁表问题解决办法

    1. 确定锁定表的原因: 首先,需要确定是什么原因导致了表的锁定。可能的原因包括长时间的事务、大量的并发查询、表维护操作等。 2. 查看锁定信息: 使用以下命令可以查看当前MySQL数据库中的锁定信息: 3. 释放锁定: 如果确认某个会话或事务占用了表锁,可以考虑终止

    2024年02月12日
    浏览(67)
  • 数据量超过亿级别,MySQL大表迁移该如何做?

    MySQL 作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和 DBA 对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及

    2024年02月11日
    浏览(43)
  • mysql for update是锁表还是锁行

    转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 在并发一致性控制场景中,我们常常用 for update 悲观锁来进行一致性的保证,但是如果不了解它的机制,就进行使用,很容易出现事故,比如 for update 进行了锁表导致其他请求只能等待,从而拖垮系统,因此了解它

    2024年03月12日
    浏览(61)
  • MySQL大表优化方案(应该是最完整最全的了)

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级 以下,字符串为主的表在 五百万 以

    2024年04月28日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包