MySQL高級十四——表的優化

一、優化

1、定期分析表:

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

2、定期檢查表:

check?table?ttG

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字樣

?以上就是MySQL高級十四——表的優化的內容,更多相關內容請關注PHP中文網(www.php.cn)!

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享