程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 大表更改默認值使用alter table不重建表,直接修改.frm

大表更改默認值使用alter table不重建表,直接修改.frm

編輯:MySQL綜合教程

大表更改默認值使用alter table不重建表,直接修改.frm     在mysql中執行很大部分的修改動作,都需要重建一個表,然後把數據放進去,最後刪除舊的表!有時候要是有索引的列上進行大批且頻繁的表的時候會導致系統的性能嚴重下降,這裡可以在修改SQL上做部分調整,減輕相關的構建結構帶來的系統壓力問題!  www.2cto.com           例如 在修改一個表的默認值為8的時候,常規做法為: (1):alter table  modes modify column  dept tinyint(3) not null default 8; 這裡通過一些show status分析出,每次都要做大量的句柄的讀取和插入操作,類似於從新構建了一張新表的樣式,這樣在一些大表,上千萬的數據量會出現瓶頸問題! 這裡我們需要靈活知道mysql的相關默認值實際是放在相關的表結構.frm文件中;我們可以不經過數據層,可以直接調整!上述的modify column會導致相關的表進行拷貝操作,不利於系統的正常穩定運行,可以使用下面方式;   www.2cto.com   (2):alter table modes alter column dept set default 8; 這裡只是更改了相關的frm文件,沒有改動表,因此速度很快的即可完成;   總結:在此我們可以注意到相關的alter table後面跟不同形式的命令,可以對數據產生了不同程度的影響,這裡還有一個change column操作也是不一樣的!  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved