gpt4 book ai didi

mysql - 在生产数据库上创建索引 MySQL 5.6.13

转载 作者:可可西里 更新时间:2023-11-01 07:22:44 24 4
gpt4 key购买 nike

我正在运行 MySQL 5.6.13,我想在我的生产数据库上运行 CREATE INDEX ... BTREE 语句。

该表是 InnoDB,大约有 400 万行,我非常希望不要锁定它。

根据docs , 看起来这条语句不会完全锁定我的表并快速返回。但是,在进行此更改之前,我需要第二个意见。

创建这个索引安全吗?

最佳答案

默认情况下,MySQL 5.6 中的 InnoDB 将在创建索引时执行读锁,因此您仍然可以让其他并发客户端从表中进行 SELECT,但不能对其进行插入/更新/删除正在创建索引时的表。

您可以选择让索引创建完全在线,甚至不进行读取锁定:

ALTER TABLE my_table ADD INDEX a (a), LOCK=NONE;

参见 http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html有关 MySQL 中在线 DDL 语句的更多详细信息。

另请参阅 MySQL 社区管理员今天发布的博客:Top 10 advances to availability since MySQL 5.5

PS:索引类型不必指定BTREE。 InnoDB 仅支持 BTREE 索引,因此它忽略了该选项。

关于mysql - 在生产数据库上创建索引 MySQL 5.6.13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19524472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com