在我的gcloud SQL數據庫的dashbord上,它表示它使用325MB的存儲,當通過MySQL-Workbench檢查總數據庫大小時,它說只有大約1.1 MB數據。它是一個非常小的數據庫,所有的文本和URL,所以它絕對不能接近325MB的任何地方。Google Cloud SQL聲稱我的數據庫比MySQL-Workbench大得多
我的問題是,什麼導致大小報告的差異?
在我的gcloud SQL數據庫的dashbord上,它表示它使用325MB的存儲,當通過MySQL-Workbench檢查總數據庫大小時,它說只有大約1.1 MB數據。它是一個非常小的數據庫,所有的文本和URL,所以它絕對不能接近325MB的任何地方。Google Cloud SQL聲稱我的數據庫比MySQL-Workbench大得多
我的問題是,什麼導致大小報告的差異?
你是否從數據庫中刪除了大量數據? InnoDB將保持磁盤空間(它將重用該空間,但從不釋放它)。如果MySQL Workbench僅將當前數據量實際上以數據庫中的數據作爲其度量標準,則會導致差異。
是的,我在測試構建腳本的過程中刪除並重新創建了數據庫可能超過了100次。這就說得通了。因此,由於實際大小隻有一個MB左右,我可以像現在一樣將實例大小更改爲128MB而不是528? –
偉大的問題。所以,答案是「是的,但它不會做你想要的。」您在https://cloud.google.com/sql/pricing上看到的是,您的層中包含大量存儲空間,但更改層並不會減少您允許的最大空間量(500 GB)。然後,我們只收取包含空間的任何費用。我們不用'innodb_file_per_table'運行(沒有在我們的機器上運行速度更快),所以'truncate table'在這裏不起作用。唯一真正的解決方案是創建一個新的Cloud SQL實例並刪除舊的實例(請注意,您最多可以重複使用舊名稱2個月)。 – cflewis
對文本列有很多索引嗎? –
沒有一堆,大多數表沒有索引只是pkeys和其中一些索引在短字符串(<10個字符)。最大的表格最多包含大約300KB的短字符串(800行)。 –