mysql 修改 frm_高性能MySQL:只修改.frm 文件

本文介绍了如何在MySQL中修改.frm文件来改变表结构,而不必重建整个表。此方法包括创建一个具有所需结构的新表,进行修改,然后使用FLUSH TABLES WITH READ LOCK锁定表,交换FRM文件,最后执行UNLOCK TABLES。警告称这种方法不受官方支持,可能存在风险,并建议在操作前备份数据。
摘要由CSDN通过智能技术生成

高性能MySQL:只修改.frm 文件以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

02ba10f5b507a041b51f126af9b90c57.png

只修改 frm 文件

从上面的例子我们看到修改表的 frm 文件是很快的 但MySQL 有时候会在没有必要的时候也重建表 如果愿意冒一些风险 可以让MySQL 做一些其他类型的修改而不用重建表

我们下面要演示的技巧是不受官方支持的 也没有文档记录 并且也可能不能正常工作 采用这些技术需要自己承担风险 建议在执行之前首先备份数据!

下面这些操作是有可能不需要重建表的

移除(不是增加)一个列的 AUTO_INCREMENT属性

增加 移除 或更改ENUM和SET常量 如果移除的是已经有行数据用到其值的常量 查询将会返回一个空字串值

基本的技术是为想要的表结构创建一个新的 frm 文件 然后用它替换掉已经存在的那张表的 frm 文件 像下面这样

创建一张有相同结构的空表 并进行所需要的修改(例如增加ENUM 常量)

执行FLUSH TABLES WITH READ LOCK 这将会关闭所有正在使用的表 并且禁止任何表被打开

交换 frm 文件

执行UNLOCK TABLES 来释放第 步的读锁

下面以给sakila film 表的rating 列增加一个常量为例来说明 当前列看起来如下

返回目录高性能MySQL

编辑推荐

ASP NET MVC 框架揭秘

Oracle索引技术

ASP NET开发培训视频教程 lishixinzhi/Article/program/MySQL/201311/29671

分页:123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值