繁体   English   中英

Oracle,MySQL等RDBMS中的数据压缩

[英]Data compression in RDBMS like Oracle, MySQL etc

我正在阅读有关内存数据库的信息,该数据库具有数据压缩等功能。 使用它,而不是像在列中那样存储名字,姓氏,父亲的名字等值(这会导致大量数据重复和磁盘存储浪费),而是为每列创建一个字典和属性向量表,因此只有唯一值存储在字典中,而其对应的属性向量存储在原始表中。
这种方法的明显优势是它通过消除数据复制的开销而占用了大量空间。

我想知道:

  1. 当Oracle,MySQL等RDBMS将数据存储在磁盘上时,它们是否隐式遵循这种方法? 还是当我们使用这些RDBMS时,如果我们想利用它们,就必须实现相同的东西?
  2. 我们知道没有免费的午餐,所以我想了解如果开发人员实现上述数据压缩方法,那会有哪些取舍? 我可以想到的是,为了从数据库中获取数据,我将必须在字典表和主表之间建立连接。 是不是

请分享您的想法和意见。

该答案基于我对您查询的理解。 看来您正在混淆两个概念: 数据规范化数据存储优化

数据标准化 :这是应用程序开发人员需要执行的过程。 在这里,需要重复存储的数据仅存储一次,并使用其标识符(通常为整数)进行引用。 这样,数据库仅消耗一次存储重复数据所需的空间。 将字符串和可变长度数据存储到数据库表中时,这是一种常见的做法。 为了检索数据,应用程序必须在相关表之间执行联接。 根据相关表的设计方式,此过程直接有助于应用程序性能。

数据存储优化 :这是RDBMS本身处理的。 这涉及多个步骤,例如维护B树结构以保存数据,在存储之前压缩数据,管理数据文件中的可用空间等。不同的RDBMS系统将以不同的方式处理它们(其中一些获得专利和专有,而另一些则更多)一般); 但是,当我们谈论诸如Oracle和MySQL的RDBMS时,可以放心,它们将遵循同类最佳的存储算法来有效地存储此数据。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM