資料庫數據壓縮
1文件地理資料庫數據有兩種壓縮方式:無損壓縮和非無損壓縮(或有損壓縮)。採用無損壓縮方式壓縮數據時,無論要素類或表中含有何種坐標系或屬性數據類型,信息都不會丟失,並且所有浮點值都將保存下來。採用有損壓縮(ArcGIS for Desktop 10.1 中新增的選項)方式壓縮文件地理資料庫數據時,壓縮效果可提高 20%,但浮點型的數值將會發生改變。如果您需要最大程度的壓縮且數據本身准確度並不是特別高,或者您不關心數據是否百分之百地精確(比如以 1:1000000 或更大比例壓縮數據時),有損壓縮是一種很好的選擇。
2壓縮數據集與解壓縮數據之間的不同之處在於編輯:壓縮數據集為只讀形式,因此除了可以更改其名稱以及修改屬性索引和元數據之外,無法對其進行任何形式的編輯或修改。
3壓縮後,數據集在 ArcCatalog 和 ArcMap 中與其被解壓之後看起來是一樣的。而且,除了編輯之外,使用方式也是相同的。壓縮數據是一種直接訪問格式,所以無需在每次訪問時都進行解壓縮;ArcGIS 和 ArcReader 可直接讀取。
4壓縮特別適用於無需進行進一步編輯的成熟數據集。然而,如果需要,始終可以對壓縮數據集進行解壓,使其返回到初始的讀取/寫入格式。
Ⅱ 如何壓縮Mysql資料庫
壓縮表從名字上來看,簡單理解為壓縮後的表,也就是把原始表根據一定的壓縮演算法按照一定的壓縮比率壓縮後生成的表。
1.1 壓縮能力強的產品
表壓縮後從磁碟佔用上看要比原始表要小很多。如果你熟悉列式資料庫,那對這個概念一定不陌生。比如,基於 PostgreSQL 的列式資料庫 Greenplum;早期基於 MySQL 的列式資料庫 inforbright;或者 Percona 的產品 tokudb 等,都是有壓縮能力非常強的資料庫產品。
1.2 為什麼要用壓縮表?
情景一:磁碟大小為 1T,不算其他的空間佔用,只能存放 10 張 100G 大小的表。如果這些表以一定的比率壓縮後,比如每張表從 100G 壓縮到 10G,那同樣的磁碟可以存放 100 張表,表的容量是原來的 10 倍。情景二:默認 MySQL 頁大小 16K,而 OS 文件系統一般塊大小為 4K,所以在 MySQL 在刷臟頁的過程中,有一定的概率出現頁沒寫全而導致數據壞掉的情形。比如 16K 的頁寫了 12K,剩下 4K 沒寫成功,導致 MySQL 頁數據損壞。這個時候就算通過 Redo Log 也恢復不了,因為幾乎有所有的關系資料庫採用的 Redo Log 都記錄了數據頁的偏移量,此時就算通過 Redo Log 恢復後,數據也是錯誤的。所以 MySQL 在刷臟數據之前,會把這部分數據先寫入共享表空間里的 DOUBLE WRITE BUFFER 區域來避免這種異常。此時如果 MySQL 採用壓縮表,並且每張表頁大小和磁碟塊大小一致,比如也是 4K,那 DOUBLE WRITE BUFFER 就可以不需要,這部分開銷就可以規避掉了。查看文件系統的塊大小:
root@ytt-pc:/home/ytt#tune2fs-l/dev/mapper/ytt--pc--vg-root|grep-i'blocksize'Block size: 4096
- 1.3 壓縮表的優勢
- 1.4 壓縮表的缺陷
- 1.5 MySQL 支持的壓縮演算法
壓縮表的優點非常明顯,佔用磁碟空間小!由於佔用空間小,從磁碟置換到內存以及之後經過網路傳輸都非常節省資源。
簡單來講:節省磁碟 IO,減少網路 IO。
當然壓縮表也有缺點,壓縮表的寫入(INSERT,UPDATE,DELETE)比普通表要消耗更多的 CPU 資源。
壓縮表的寫入涉及到解壓數據,更新數據,再壓縮數據,比普通表多了解壓和再壓縮兩個步驟,壓縮和解壓縮需要消耗一定的 CPU 資源。所以需要選擇一個比較優化的壓縮演算法。
這塊是 MySQL 所有涉及到壓縮的基礎,不僅僅用於壓縮表,也用於其它地方。比如客戶端請求到 MySQL 服務端的數據壓縮;主從之間的壓縮傳輸;利用克隆插件來復制資料庫操作的壓縮傳輸等等。
從下面結果可以看到 MySQL 支持的壓縮演算法為 zlib 和 zstd,MySQL 默認壓縮演算法為 zlib,當然你也可以選擇非 zlib 演算法,比如 zstd。至於哪種壓縮演算法最優,暫時沒辦法簡單量化,依賴表中的數據分布或者業務請求。
Ⅲ 數據壓縮技術分為哪兩類使用方法是什麼
【導讀】數據壓縮技術是大數據傳輸過程中需要採用的一種數據存儲方法。那麼數據壓縮技術分為哪兩類?使用方法是什麼呢?為此小編今天就來和大家細細聊聊關於數據壓縮技術那些事,同時也提醒各位大數據工程師在使用數據壓縮過程中的一些注意事項及使用方法。
在數據壓縮中,通過使用比原始數據更少的位來對數據進行編碼,數據壓縮有兩種方法:無損壓縮,它消除了冗餘但不丟失任何原始數據;有損數據壓縮,可通過刪除不必要或不太重要的信息來修改數據,在大數據的傳輸和存儲中使用數據壓縮非常重要,因為它減少了IT部門必須為該數據提供的網路帶寬和存儲量,同樣重要的是,您實際上並不想保留某些類型的大數據,例如作為物聯網(IoT)通信數據一部分的設備間握手引起的抖動。
為了最大程度地利用大數據進行數據壓縮,您必須知道何時何地使用不同類型的數據壓縮工具和公式。選擇數據壓縮方法時,請牢記以下幾條有用的准則:
何時使用無損數據壓縮
如果您有一個大數據應用程序,並且無法承受丟失任何數據的麻煩,並且需要解壓縮壓縮的每個位元組的數據,那麼您將需要一種無損的數據壓縮方法,當您壓縮來自資料庫的數據時,即使您意味著必須存儲更多的數據,也希望進行無損數據壓縮。在選擇將此數據重新提交到其資料庫時,您需要解壓縮完整數據,以便它可以與資料庫端的數據匹配並進行存儲。
何時使用有損數據壓縮
有時您不需要或不需要所有數據,例如物聯網和網路設備的抖動,您不需要這些數據,只需提供給您業務所需的上下文信息的數據即可。第二個示例是在數據壓縮過程的前端可能使用的數據壓縮公式中使用人工智慧(AI),如果您正在研究一個特定的問題,並且只希望與該問題直接相關的數據,則可以決定讓數據壓縮公式不包含與該問題無關的任何數據。
如何選擇正確的編解碼器
一個編解碼器是一個硬體,軟體的組合,壓縮和解壓縮數據,所以它在大數據壓縮和解壓縮操作的核心作用,編解碼器有許多種,因此為正確的數據或文件類型選擇正確的編解碼器很重要,您選擇的編解碼器類型將取決於您嘗試壓縮的數據和文件類型,有無損和有損數據的編解碼器,也有一些編解碼器必須將所有數據文件作為「整體」處理,而其他編解碼器可以將數據分割開,以便可以對其進行並行處理,然後在其目的地重新組合,某些編解碼器設置用於可視數據,而其他編解碼器僅處理音頻數據。
為什麼數據壓縮很重要?
確定將用於大數據的數據壓縮類型是大數據操作的重要組成部分,僅在資源端,IT人員就無法承受處理失控和迅速發展的存儲的成本,即使必須完整存儲數據,也應盡可能地對其進行壓縮,也就是說,您可以採取其他步驟來限制存儲和處理,以及針對大數據壓縮中採用的演算法和方法的最適合操作,掌握這些選項是IT部門的關鍵數據點。
以上就是小編今天給大家整理分享關於「數據壓縮技術分為哪兩類?使用方法是什麼?」的相關內容希望對大家有所幫助。小編認為要想在大數據行業有所建樹,需要考取部分含金量高的數據分析師證書,這樣更有核心競爭力與競爭資本。
Ⅳ MS SQL2000資料庫太大了 如何壓縮
具體方法有3種。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以。
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比。
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收縮的文件的標識 (ID) 號,若要獲得文件 ID,請使用 FILE_ID 函數或在當前資料庫中搜索 sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc shrinkfile 將文件大小減少到默認文件大小。兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思查看聯機幫助.
方法二:
第一步:
先備份整個資料庫以備不測 。
第二步:
備份結束後,在Query Analyzer中執行如下的語句:
exec sp_detach_db yourDBName,true
--卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query Analyzer中執行如下的語句:
exec sp_attach_single_file_db yourDBName,'
d:\mssql\data\yourDBName_data.mdf '
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。
方法三:
1. 進入企業管理器,選中資料庫,比如demo
2. 所有任務->分離資料庫
3. 到資料庫文件的存放目錄,將MuOnline_log.LDF文件刪除,以防萬一,你可以拷出去
4. 企業管理器->附加資料庫,選muonline,這個時候你會看見日誌文件這項是一個叉,不要緊,繼續,此時資料庫就會提示你該資料庫無日誌是否創建一個新的,確定就是了。
5. 記得資料庫重新附加後用戶要重新設置一下。
如果以後,不想要它變大:
SQL2000下使用:
在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。
或用SQL語句:
alter database 資料庫名 set recovery simple
Ⅳ 為什麼要壓縮和備份資料庫
資料庫壓縮是SQL Server 2008的一個新特性,它可以顯著地降低備份和恢復操作。默認情況下,備份壓縮是在伺服器實例級別上關閉的。不像其它提供不同級別壓縮的第三方軟體,SQL Server 2008隻提供了一個級別。
資料庫壓縮是針對資料庫存儲的內容主要是文本進行壓縮存儲以節約空間的一種方法。
數據備份就是要保存數據的完整性,防止非法關鍵,斷電,病毒感染等等情況,使數據丟失。有必要的話,最好勤備份,防止數據丟失。
最主要的原因:盡可能地減少損失,包括時間上、精神上和金錢上的損失。很多人都不注意備份數據,以致在發生問題後丟失大量的重要數據。要知道,在地球上網是很危險的,即使做好安全預防措施,也難免會發生不可預想的問題。因此,數據備份是日常必不可少的操作。