Mysql
MySQL 數據庫問題 - 增長太快,性能
我的數據庫設置有一些問題: MySQL 數據庫每隔幾秒鐘就會寫入一次,並且它的大小增長得非常快。我的磁碟空間有限,所以我必須解決這個問題。但是,數據不應該那麼大。這是寫入數據庫的 3 個 DOUBLE 類型的元組及其 auto_increment 主鍵。它已經包含大約 12M 行(在一個表中!)。伺服器只有 512MB 的 RAM,查詢需要很長時間。
現在,每次我 mysqldump 數據庫時,轉儲文件都比數據庫本身小得多。那個怎麼樣?我應該刪除所有外鍵關係以提高性能嗎?有沒有辦法將數據庫分佈在多個伺服器上?
提前致謝。
mysqldump
將數據輸出為文本,因此數據的大小幾乎總是與表的大小不同。您看到的表的大小可能還包括索引,這些索引不會被轉儲。轉儲可能更小,因為索引不在轉儲中,並且數據可能相對較短,即 1.24 而不是 168535.186434965355732。如果數據很短,那會對您的轉儲產生巨大影響。數據類型使用
DOUBLE
8 個字節。所以在表中,1.2
需要 8 個字節,但在轉儲中,僅對於數據,它只需要 3 個(它是 3 個文本字元)。對於數據庫的性能,可能有很多事情可以做,但具體可以做的事情在很大程度上取決於您的系統。
EXPLAIN
您的主要查詢,以確保它們正在使用索引。我相信在大多數情況下,外鍵只會對性能有害。如果您可以相信任何使用您的數據庫的東西不會輸入錯誤的值,那麼您可能不需要它們。每次插入子外鍵列時,伺服器都必須檢查父級以確保新值有效,這可能不會導致巨大的性能損失,但通常沒有必要。如果您這樣做,您可能會提到它,但是轉儲通常被壓縮,因為它們是高度可壓縮的(通常使用 gzip 壓縮到原始大小的 10-20%)。這將導致轉儲顯著變小。