熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

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

2013-11-23 21:09:11  來源: MySQL 

   只修改frm 文件

  從上面的例子我們看到修改表的frm 文件是很快的但MySQL 有時候會在沒有必要的時候也重建表如果願意冒一些風險可以讓MySQL 做一些其他類型的修改而不用重建表

  我們下面要演示的技巧是不受官方支持的也沒有文檔記錄並且也可能不能正常工作采用這些技術需要自己承擔風險建議在執行之前首先備份數據!

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

  移除(不是增加)一個列的 AUTO_INCREMENT屬性

  增加移除或更改ENUM和SET常量如果移除的是已經有行數據用到其值的常量查詢將會返回一個空字串值

  基本的技術是為想要的表結構創建一個新的frm 文件然後用它替換掉已經存在的那張表的frm 文件像下面這樣

   創建一張有相同結構的空表並進行所需要的修改(例如增加ENUM 常量)

   執行FLUSH TABLES WITH READ LOCK這將會關閉所有正在使用的表並且禁止任何表被打開

   交換frm 文件

   執行UNLOCK TABLES 來釋放第 步的讀鎖

  下面以給sakilafilm 表的rating 列增加一個常量為例來說明當前列看起來如下

      返回目錄高性能MySQL

       編輯推薦

       ASPNET MVC 框架揭秘

       Oracle索引技術

       ASP NET開發培訓視頻教程

  數據倉庫與數據挖掘培訓視頻教程


From:http://tw.wingwit.com/Article/program/MySQL/201311/29671.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.