2017-01-20 56 views
0

我在memsql中創建了一個列存儲表,並在大約1000萬條記錄中填充了它,之後我開始運行幾個更新方案。我注意到/ var/lib/memsql/leaf-3307/data /列中數據的大小不斷增加,似乎沒有任何東西被刪除。最初該文件夾的大小是幾百Mb,但在完整的表更新後,它會快速跳到幾Gb。 memsql-ops報告的「Columnstore Disk Usage」也增加了,但速度非常緩慢(遠遠低於我在磁盤上看到的)。Memsql columnstore數據在TRUNCATE或DROP TABLE之後沒有從磁盤中刪除

這讓我覺得數據永遠不會從磁盤上真正刪除。 The documentation指出運行OPTIMIZE命令應該壓縮的行段組和刪除的行會被刪除:

刪除 - 在列存儲索引中刪除的行會導致行作爲該段的元數據刪除,留下被標記行段內的數據就位。僅包含已刪除行的段將被刪除,下面介紹的優化過程將壓縮需要優化的段。

運行OPTIMIZE命令沒有幫助。我也試過截斷桌面,甚至放棄它,但沒有任何幫助。列文件夾中的數據仍然存在。我能找到的清理問題的唯一方法就是刪除整個數據庫。

這看起來不像預期的行爲,我找不到任何證明它的證明文件。任何人都可以解釋爲什麼會發生這種情況,是否會發生,或者指向我的相關文檔?

在此先感謝

回答

1

MemSQL將保持在每個分區數據庫磁盤周圍columnstore_window_size字節刪除列存儲數據。這是實現列存儲複製的一部分(它保留了一些舊文件,以防奴隸落後)。如果您降低該系統變量的值,您將看到磁盤使用率下降。如果您不使用冗餘2,那麼降低它並沒有什麼壞處。

+0

謝謝,亞當。這就是訣竅:) –

相關問題