15
A
回答
22
對於InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE,以重新生成表更新聚集索引指數統計和自由未使用的空間。從MySQL 5.1.27開始,當你在一個InnoDB表運行,這是顯示在OPTIMIZE TABLE的輸出,如下所示:
mysql> OPTIMIZE TABLE foo;
+----------+----------+----------+-----------------------------------------------------------
| Table | Op | Msg_type | Msg_text
+----------+----------+----------+-----------------------------------------------------------
| test.foo | optimize | note | Table does not support optimize, doing recreate + analyze ...
| test.foo | optimize | status | OK
+----------+----------+----------+-----------------------------------------------------------
您可以通過啓動mysqld就其他存儲引擎OPTIMIZE TABLE工作--skip-new或--safe-mode選項。在這種情況下,OPTIMIZE TABLE僅映射到ALTER TABLE。
3
的語法optimize
表是
OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
tbl_name [, tbl_name] ...
使用OPTIMIZE TABLE
在這些情況下,根據表的類型:
- 做大量的插入,更新後,或刪除操作上一個InnoDB表具有自己的.ibd文件,因爲它是在啓用innodb_file_per_table選項的情況下創建的。表和索引被重新組織,磁盤空間可以回收供操作系統使用。
- 刪除大部分MyISAM或ARCHIVE表後,或者對具有可變長度行(具有VARCHAR,VARBINARY,BLOB或TEXT列的表)的MyISAM或ARCHIVE表進行許多更改之後。刪除的行保留在鏈接列表中,隨後的INSERT操作將重新使用舊的行位置。您可以使用OPTIMIZE TABLE來回收未使用的空間並對數據文件進行碎片整理。對錶進行大量更改後,此語句可能還會提高使用該表的語句的性能,有時還會顯着提高。
相關問題
- 1. 無法優化innoDB表
- 2. 優化innodb表:是或否?
- 3. MySQL InnoDB優化
- 4. InnoDB表優化沒有鎖定表
- 5. Innodb的插入優化
- 6. 優化InnoDB數據庫
- 7. Mysql InnoDB性能優化和索引
- 8. 優化慢查詢MySQL InnoDB(Doctrine2)
- 9. 需要InnoDB優化技巧 - mysql
- 10. MySQL InnoDB哈希索引優化
- 11. 優化InnoDB表和有問題的查詢
- 12. MySQL Innodb表需要超過4小時才能優化
- 13. 使用GUID/UUID鍵優化Innodb表索引
- 14. 優化表
- 15. MySQL表優化
- 16. mysql優化表
- 17. ...仍然沒有得到結果試圖優化mysql innodb表的快速計數
- 18. 如何優化將innodb作爲引擎添加到大表的關鍵字?
- 19. 如何優化InnoDB內存參數的性能?
- 20. 在InnoDB上殺死一個優化是否安全?
- 21. Mysql 5.1.49 InnoDB /查詢優化器動作怪異?
- 22. 如何選擇列[innodb特定]的優化數據類型?
- 23. 優化innoDB,但我的插入等待對方
- 24. 在MySql InnoDB數據庫中優化慢查詢
- 25. 如何爲MySQL InnoDB(插入)性能優化?
- 26. 優化mysql表嗎?
- 27. 路由表優化
- 28. 哈希表優化
- 29. ActiveAndroid優化相表
- 30. 優化MySQL大表
比從未更好的遲到。 :) – 2013-04-23 14:15:09