【问题标题】:Does MySQL obtains a lock on the table while adding a new composite index?MySQL 在添加新的复合索引时是否会在表上获得锁?
【发布时间】:2021-04-20 06:51:56
【问题描述】:

我有一张导致性能问题的生产表。我已经确定了一些可以添加以解决问题的快速索引。 MySQL 在添加新索引时是否会获得表上的锁?是否取决于索引的性质(唯一性、复合性等)?

请注意,我没有任何特殊需要添加新列,因此不会运行任何 ALTER 命令。

【问题讨论】:

  • 什么版本的 MySQL? 这很重要。
  • MYSql 版本:5.7

标签: mysql sql indexing


【解决方案1】:

UNIQUE 索引必须检查唯一性。

PRIMARY KEY 的任何更改都需要重建索引。 (对于 InnoDB)

新版本的 MySQL 可以添加索引而影响很小。

复合无所谓。

添加“新列”是一个不同的问题。这也“取决于”。如果您没有“after”子句,新版本可以“立即”执行此操作。

【讨论】:

  • 我担心的是锁。 MySQL 在添加索引时是否会在表上获得任何类型的锁(读/写)?
猜你喜欢
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 2013-10-22
  • 2013-01-28
相关资源
最近更新 更多