首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL的重命名表状态是如何工作/执行的?

MySQL的重命名表状态是如何工作/执行的?
EN

Stack Overflow用户
提问于 2009-05-20 01:22:36
回答 2查看 2.5K关注 0票数 4

MySQL有一个重命名的表状态,允许您更改表的名称。

手册提到

重命名操作是原子性的,这意味着在重命名运行时,没有其他会话可以访问任何表。

手册没有说明这个重命名是如何完成的。是否创建了整个表副本,给出了新名称,然后删除了旧表?或者MySQL在幕后做了一些魔术来快速重命名这个表?

换句话说,表的大小是否会影响重命名table语句运行所需的时间。是否还有其他事情可能导致块的重命名显着地阻塞?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-20 01:29:27

我认为MySQL只需要在存储过程中修改元数据和对表旧名称的引用--表中的记录数量应该是不相关的。

票数 6
EN

Stack Overflow用户

发布于 2009-05-20 02:03:22

除了修改元数据之外,它还重命名相关的.FRM文件。虽然他们可以声称它是一个“原子”操作,但这是mysql_rename_tables函数代码中的一个实际注释.

代码语言:javascript
复制
/* Lets hope this doesn't fail as the result will be messy */

=)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/885771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档