mysql - 为什么在oracle中引入散列分区?有什么好处

标签 mysql sql oracle hash partitioning

我浏览了各种关于 oracle 哈希分区的网站,但我无法理解它的优势。 我开始知道,即使有时通过使用范围分区,数据也可能分布不均。 所以我们要进行哈希分区。

所以有人请解释一下什么是散列分区,散列分区的必要性?

为什么要进行哈希分区?

为什么我们在创建散列分区时使用 2 个 n 次幂的表空间

当我们进行散列分区时究竟发生了什么?

谁能详细解释一下?

提前致谢。

最佳答案

好吧,分区会为您带来很多好处。忘记分区消除 片刻:

  • 您有 100 个 1 gig 表空间,而不是要备份 100 gig 表空间。 (每个表空间在备份模式下花费的时间更少,减少了潜在的额外数量 重做,减少在实例失败时需要执行的手动恢复量 备份)。与恢复相同。

  • 不是在 100 gig 表上有索引,而是在 1 gig 上有 100 个索引 表。您可以快速重建每一个....(并且以最小的开销在线)。
    在 100 gig 表上重建单个索引——这可能需要 100 倍的时间 然后每个单独的重建(真正的并行查询可能会减少)。

  • 您可以快速分析每个分区,而不是对 100 gig 运行分析 表。

  • 您可以独立于任何其他分区重组每个分区

  • 您可以轻松地在多个磁盘上重新分配负载,您现在已经均匀分布了 数据分为 100 个 1 gig 分区,随意移动它们。如果您手动执行此操作——您 移动这些东西会很费时间。

  • 等等(您对分区所做的每个管理选项都适用于哈希 分区)。

  • 作为奖励,您不再需要以直接路径模式将此数据加载到此文件中, 该数据到该文件等。只需让软件为您完成这项工作即可。真的, 我们人类可以做很多事情——但是——当软件可以为我做的时候……也许 比我能做的还要好……值得一试。

现在,让我们重新引入分区消除。假设你是一个 OLTP 系统。你会 选择一个在大多数查询中使用的分区键(比如 CUSTOMER_ID、ORDER_ID、 某物)。很难在上面进行分区(在某些东西上几乎不可能 像 ORDER_ID),但对散列分区来说非常微不足道。

关于mysql - 为什么在oracle中引入散列分区?有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22934780/

相关文章:

sql - 如何在T-SQL中计算GROUP BY行

sql - Oracle 脚本 - 物化 View 和同义词

MYSQL 选择 DISTINCT 聊天对话

php - While 循环未编译(PHP V 5.3.8)

php - Mysql select column from an table to match up with another table to pull id

php - 在 MySQL 中使用 REGEX

sql - 如何从 SQL Server DateTime 数据类型仅返回日期

Java 和 SQLite 问题

sql - Oracle MERGE 语句在并行事务中执行 : How to prevent duplicate keys?

sql - 使用 SAS 表删除 Oracle 数据库中的特定行