我有一個數據庫中有數百萬條記錄。哪個是最好的無損數據庫壓縮技術
表具有兩個屬性1]名稱2]位置
有多條記錄,其具有不同的名稱,但相同的位置,這樣是有可以在位置屬性被應用於任何壓縮技術?
您可以使用支持的數據庫名稱來推薦各種無損壓縮技術。
我有一個數據庫中有數百萬條記錄。哪個是最好的無損數據庫壓縮技術
表具有兩個屬性1]名稱2]位置
有多條記錄,其具有不同的名稱,但相同的位置,這樣是有可以在位置屬性被應用於任何壓縮技術?
您可以使用支持的數據庫名稱來推薦各種無損壓縮技術。
Normalise your database。有一個LOCATIONS
表,並給你的第一個表的外鍵。
不到65535個不同的位置?這是原始表中每個記錄的兩個字節。如果你問我,相當不錯的壓縮。也使索引和比較更快。
數據比代碼更重要。首先獲取數據。 儘可能標準化默認。只有在您發現(特定的,測量的和完全歸因的)性能問題或某些重要原因後才能進行非規範化。
你想尋找一個空間索引。 Si將複雜度降低到1d。一個si用於地圖和treemaps。它看起來像一棵四叉樹。
呵呵,首先我以爲你完全錯過了這一點,然後我意識到**我有** !是的,如果地址是地址這樣的字符串,那麼請閱讀我的答案 - 如果地點是緯度/經度或其他東西,那麼你需要離散數據。 – spraff
對不起,先生,請你詳細說明你的意思嗎?一個離散函數的例子嗎?或者是一個空間索引離散函數?我有一個糟糕的一天 – Bytemain
是的,它可能是連續的值,但如果你把宇宙分成一半並說「(x1,y1)在左邊,(x2,y2)在右邊「,那麼你有一個1位離散值來區分這些點。其他示例有[矢量量化](http://www.gamasutra.com/view/feature/3090/image_compression_with_vector_.php),八叉樹尋址等。關係數據庫不會自然處理,但它們可以存儲BSP「路徑「作爲一個普通的整數。 – spraff
剛剛[正常化數據庫](http://en.wikipedia.org/wiki/Database_normalization)怎麼樣? – hammar
爲什麼要壓縮數據?你真的有空間問題,或者你只是試圖過早地優化大小?你應該考慮如果你成功了會發生什麼,你將如何查詢數據庫的位置?無論如何,是否有可能擁有一個位置表,並且只是存儲一個參考?據推測(但你必須檢查)如果有很多位置被重用,int類型的引用總共佔用的空間會更少。 –
看起來像功課。 – Bytemain