Mysql
我注意到我的 MySQL slave 的 DB 大小小於 Master 的 DB
我有一個非常簡單的主 MySQL DB 設置,其中一個從 MySQL DB 從中複製。
最初,在設置從屬伺服器時,我使用 mysqldump 從主伺服器獲取初始數據庫轉儲,如下所示:
mysqldump --single-transaction --master-data some_db > someSQL.sql
然後我轉到我的從屬數據庫,創建了一個名為“some_db”的全新數據庫,然後嘗試反向轉儲:
mysql -uroot --one-database some_db < someSQL.sql
但後來我在 MySQL 提示符下比較了 DB 大小,發現 master 的 some_db 的大小約為 7.6 gigs,而 slave 的只有 6.4 gigs。
我發現這很令人擔憂,因為我想知道某些數據是否失去了。據我了解,數據庫不包含 blob 或任何觸發器,那麼缺少的 1.2 gigs 可能去哪裡了?
請讓我知道您的想法。
謝謝是
由於表經歷了許多 INSERT/UPDATE/DELETE 循環,mysql 不會從已刪除的行中回收空間;相反,它在內部將該行標記為“已刪除”並將其保留在表空間中。1G 大小差異並不少見,不應該引起恐慌。
您可以嘗試
optimize table
在 master 上執行命令並驗證表大小是否減小。定期優化執行大量 DELETE 操作的表是一種很好的做法。