开发者社区 > 数据库 > 关系型数据库 > 正文

PolarDB在线上加索引 但是不要锁表,可以实现吗?

PolarDB在线上加索引 但是不要锁表,可以实现吗?

展开
收起
真的很搞笑 2024-02-08 13:48:11 147 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    PolarDB MySQL版支持在线上加索引,并且不会锁表。

    具体实现方法如下:

    1. 创建索引:使用ALTER TABLE命令为表创建索引,例如ALTER TABLE table_name ADD INDEX index_name (column_name)
    2. 不锁表:在执行ALTER TABLE命令时,可以通过设置ALGORITHM=INPLACELOCK=NONE参数来避免锁表。例如:ALTER TABLE table_name ADD INDEX index_name (column_name) ALGORITHM=INPLACE LOCK=NONE

    需要注意的是,虽然这种方法不会锁表,但是会增加一些额外的系统开销。此外,如果表中的数据量较大,那么创建索引的过程可能需要较长时间。因此,建议在业务低峰期进行操作,并对操作过程中可能产生的风险进行评估和备份。

    2024-02-17 08:49:25
    赞同 展开评论 打赏
  • 现在add 索引是可以online加的,就是加索引前和最后修改元数据是锁表,中间不影响DML的,大大降低了锁表时间,另外并行加索引的话,会再次减少创建索引的时间 ,此回答整理自钉群“PolarDB 专家面对面 - 慢SQL索引选择优化器新特性”

    2024-02-08 14:40:24
    赞同 展开评论 打赏

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

相关产品

  • 云原生数据库 PolarDB
  • 相关电子书

    更多
    PolarDB+AnalyticDB助力交通物流行业系统升级 立即下载
    PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载
    云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载