数据库数据压缩
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只提供了一个级别。
数据库压缩是针对数据库存储的内容主要是文本进行压缩存储以节约空间的一种方法。
数据备份就是要保存数据的完整性,防止非法关键,断电,病毒感染等等情况,使数据丢失。有必要的话,最好勤备份,防止数据丢失。
最主要的原因:尽可能地减少损失,包括时间上、精神上和金钱上的损失。很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据。要知道,在地球上网是很危险的,即使做好安全预防措施,也难免会发生不可预想的问题。因此,数据备份是日常必不可少的操作。