MySQL高級十四——表的優化

一、優化

1、定期分析表:

analyze table woitems;

+---------------+---------+----------+----------+
| Table         | Op      | Msg_type | Msg_text |
+---------------+---------+----------+----------+
| caiwu.woitems | analyze | status   | OK       |
+---------------+---------+----------+----------+

2、定期檢查表:

check table tt\G

3、定期優化表:

optimize table只對MyISAM,BDB和InnoDB表起作用。

對於MyISAM表,OPTIMIZE TABLE按如下方式操作:

如果表已經刪除或分離了行,則修復表。

如果爲對索引頁進行分類,則進行分類。

如果表的統計數據沒有更新(並且通過對索引進行分類不能實現修復),則進行更新


注意:無論是ANALYZE,CHECK,還是OPTIMIZE再執行期間將對錶進行鎖定,因此請注意這些操作要是在數據庫不繁忙的時候進行。



二、獲取表的相關信息

show table status;

show table status like 'tableName'\G

*************************** 133. row ***************************
           Name: www_users
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 32768
      Data_free: 6291456
 Auto_increment: NULL
    Create_time: 2015-12-06 15:25:20
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:

1、name:表名稱

2、Engine:表的儲存引擎

3、Version:版本

4、Row_format:行格式。對於MyISAM引擎,這可能是Dynamic,Fixed或Compressed。動態行的行長度可變,例如Varchar或Blob類型字段。固定行長度不變,例如Char和Integer類型字段。

5、Rows:表中的行數。對於非事務性表,這個值是精確地,對於事務性引擎,這個值通常是估算的。

6、Avg_row_length:平均每行包括的字節數

7、Data_length:這個表的數據量(單位:字節)

8、Max_data_length:表可以容納的最大數據量

9、Index_length:索引佔用磁盤的空間大小

10、Data_free:對於MyISAM引擎,標識已分配,但現在未使用的空間,並且包含已刪除行的空間。

11、Auto_increment:的值

12、Create_time:表的創建時間

13、Update_time:表的最近更新時間

14、Check_time:使用check table或myisamchk工具檢查表的最近時間

15、Collation:表的默認字符集和字符排列規則

16、Checksum:如果啓用,則對整個表的內容計算時的校驗和

17、Create_options:指創建時的其他所有選項

18、Comment:包含了其他額外信息,對於MyISAM引擎,包含了註釋標新,如果表使用的是Innodb引擎,將現實表的剩餘空間。如果是一個視圖,註釋裏面包含了VIEW字樣





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章