對於我們的應用程序,我們保留大量由三個整數列(源,類型和時間)索引的數據。加載大量的數據可能需要一些時間,我們已經實施了各種措施來減少爲更大的查詢而必須搜索和加載的數據量,例如爲不需要高分辨率的查詢存儲更大的粒度(時間-明智的)。數據壓縮如何比搜索性能的索引更有效?
在我們的備份存檔中搜索數據時,其中的數據存儲在雙向壓縮文本文件中,但基本上具有相同的結構,我注意到將標籤解壓縮並通過grep進行管道傳輸比將其解壓縮要快得多磁盤和grep文件。實際上,untar-to-pipe甚至比僅對未壓縮文件進行擦除(即折扣磁盤解壓縮)顯着更快。
這讓我想知道磁盤I/O的性能影響是否比我想象的要重得多。所以這裏是我的問題:
您是否認爲將多行數據放入單行的(壓縮)blob字段並在提取過程中實時搜索單行可能比通過搜索相同行更快表索引?
例如,代替具有該表
CREATE TABLE data (`source` INT, `type` INT, `timestamp` INT, `value` DOUBLE);
我不得不
CREATE TABLE quickdata (`source` INT, `type` INT, `day` INT, `dayvalues` BLOB);
用大約100-300行中用於的QuickData各行數據和搜索所需的時間戳在解壓和解碼blob字段期間飛行。
這對你有意義嗎?我應該調查哪些參數?可能連接什麼字符串?什麼數據庫功能(任何數據庫管理系統)存在達到類似的效果?