在本教程中,我們將向您介紹一些非常有用的語句,使您可以在mysql中維護資料庫表。
mysql提供了幾個有用的語句,可以有效地維護資料庫表。 這些語句使您能夠分析,優化,檢查和修復資料庫表。
分析表語句
mysql查詢優化器是mysql伺服器的重要組成部分,為查詢建立了乙個最佳的查詢執行計畫。 對於特定查詢,查詢優化器使用儲存的金鑰分發和其他因素來決定在執行連線時應將表進行連線的順序,以及哪個索引應用於特定表。
然而,金鑰分發可能有時不準確,例如,在表中進行了大量資料更改(包括插入,刪除或更新)之後。如果金鑰分發不準確,則查詢優化器可能會選擇可能導致嚴重效能問題的錯誤查詢執行計畫。
要解決此問題,您可以為該錶執行analyze table語句,例如,以下語句分析示例資料庫(yiibaidb)中的payments表。如下所示 -
mysql> analyze table payments;
| table | op | msg_type | msg_text |
| yiibaidb.payments | analyze | status | ok |
1 row in set
如果執行analyze table語句後表沒有變化,mysql將不會再次分析表。 如果再次執行上述語句:
mysql> analyze table payments;
| table | op | msg_type | msg_text |
| yiibaidb.payments | analyze | status | ok |
1 row in set
當前表已經是最新的狀態了。
優化表語句
在使用資料庫時,可以進行許多更改,如插入,刪除或更新表中的資料,這可能會導致表的物理儲存碎片化。因此,資料庫伺服器的效能下降。
optimize table table_name;
mysql> optimize table orders;
| table | op | msg_type | msg_text |
| yiibaidb.orders | optimize | note | table does not support optimize, doing recreate + analyze instead |
| yiibaidb.orders | optimize | status | ok |
2 rows in set
檢查表語句
資料庫伺服器可能會發生錯誤,例如,伺服器意外關閉,將資料寫入硬碟時出錯,等等。這些情況可能導致資料庫執行不正確,並且在最壞的情況下可能會崩潰。
mysql允許您使用check table語句檢查資料庫表的完整性。以下說明check table語句的語法:
check table table_name;
check table語句檢查表及其索引。 例如,可以使用check table語句來檢查訂單表,如下所示:
check table orders;
執行上面語句,結果如下 -
mysql> check table orders;
| table | op | msg_type | msg_text |
| yiibaidb.orders | check | status | ok |
1 row in set
check table語句僅檢測資料庫表中的問題,但不會修復它們。要修復表,請使用repair table語句。
修復表語句
repair table語句允許您修復資料庫表中發生的一些錯誤。 mysql不保證repair table語句可以修復表所有可能的錯誤。
以下是epair table語句的語法:
repair table table_name;
假設orders表中有一些錯誤,需要修復它們,可以使用repair table語句,如下查詢所示:
repair table employees;
mysql返回表中所做的內容,並顯示表是否已修復。
注: repair table方法僅適用於myisam,archive和csv表。
在本教程中,您已經學到了一些非常方便的語句來維護mysql中的資料庫表。
¥ 我要打賞
糾錯/補充
收藏加qq群啦,易百教程官方技術學習群
注意:建議每個人選自己的技術方向**,同乙個qq最多限加 3 個群。
mysql資料庫維護
進行資料庫維護 analyze table 表名 檢查表鍵是否正確 check table 表1 表2 用來針對許多問題對錶進行檢查診斷啟動問題 help 顯示幫助 safe mode 裝載減去某些最佳配置的伺服器 verbose 顯示全文本訊息 version 顯示版本資訊然後退出錯誤日誌 日誌檔...
mysql 資料庫維護
一 備份資料 1 使用mysqldump命令備份 前提 musql的版本必須一致。mysqldump u username p default character set gbk dbname table1 table2 backupname.sql 例項 mysqldump u root p de...
MYSQL資料庫 表維護
如果想知道mysql資料庫中每個表占用的空間 表記錄的行數的話,可以開啟mysql的information schema 資料庫。在該庫中有乙個tables 表,這個表主要字段分別是 table schema 資料庫名 table name 表名 engine 所使用的儲存引擎 tables row...