【轉】優化數據庫表的簡單方法

1、按期分析表和檢查表

1.分析表語法以下:html

  alalyze [local|no_write_to_binlog] table table_name1[,table_name2]...數據庫

  用於分析和存儲表的關鍵字分佈,分析後能夠使系統等到更準確的統計信息,優化

使得SQL可以生成正確的執行計劃。在分析表期間,使用一個讀取鎖定對錶進行鎖定。htm

對於MyISAM、BDB、和InnoDB表有用。blog

 

2.檢查表語法以下:索引

  check table table_name[,table_name2]...[option]...option={QUICK|FAST|MEDIUM|EXTENDED|CHANGED}it

  檢查表的做用是檢查一個或者多個表是否有錯誤。也能夠檢查視圖是否有錯誤。check table 對MyISAM和io

InnoDB有做用。innodb

 

2、按期優化表

  優化表的語法以下:table

  optimize [local|no_write_to_binlog] table table_name1[,table_name2]...

  若是刪除了表的一大部分,或者對含有可變長度列的表(含有varchar、blob、text列的表)進行了不少更改,

則應該使用optimize table 命令來進行表優化。optimize 能夠合併表中的空間碎片,消除因爲刪除或者更新形成的

空間浪費。該命令只對MyISAM、BDB、InnoDB表起做用。

 

  對於InnoDB表來講,能夠設置innodb_file_per_table參數,設置InnoDB爲獨立表空間模式,這樣每一個數據庫的的每一個

表都會生成一個獨立的ibd文件,用戶存儲表的數據可和索引。這樣能夠必定程度上減輕InnoDB表空間的回收問題。

  另外,再刪除大量數據後,InnoDB能夠經過alter table 但不修改存儲引擎的方式回收不用的空間。

alter table table_name engine=innodb;

 

注意:analyze、check、optimize、alter table 執行期間都會鎖表,所以要在數據庫不繁忙的時候執行相關操做。

 

文章轉自:https://www.cnblogs.com/langdashu/p/5900068.html

相關文章
相關標籤/搜索