问题标签 [partitioning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1744 浏览

sql-server - SQL Server 中的表分区方法

我正在使用的数据库目前超过 100 GiB,并有望在未来一年左右变得更大。我正在尝试设计一个可以与我的数据集一起使用的分区方案,但到目前为止都失败了。我的问题是,针对这个数据库的查询通常会测试这个大表中多个列的值,最终导致结果集以不可预测的方式重叠。

每个人(与我一起工作的 DBA)都警告不要让表超过一定大小,我已经研究和评估了我遇到的解决方案,但它们似乎都依赖于允许逻辑表分区的数据特征。不幸的是,鉴于我的表格结构,我看不到实现这一目标的方法。

这是我们的两个主要表格的结构,以便对此进行透视。

请注意,上面的任何列都可以用作查询参数。

0 投票
4 回答
15126 浏览

postgresql - 在 postgresql 中水平分片的好方法是什么

在 postgresql 中水平分片的好方法是什么

这是使用分片的更好方法

也可以在不更改客户端代码的情况下进行分区

如果有人可以分享一个关于如何设置和使用分片的简单教程或食谱示例,那就太好了

0 投票
1 回答
10105 浏览

postgresql - 如何在 postgresql 8.3.7 中的分区表上使用索引

我的情况是,运行一个按分区表中的索引列过滤的查询,执行全表扫描。

显然,这是 postgresql 中的一个已知问题,这里有详细解释。

除了在每个分区上执行查询,然后对所有结果执行 UNION 之外,还有更优雅的方法吗?

0 投票
2 回答
427 浏览

sql-server - SQL Server 2005 中的分区表——寻找现实世界的警告

我目前正在使用 SQL Server 2005 对分区表进行基准测试,以将它们与使用两个表(一个“实时”表和一个“归档”表)作为处理队列进行比较。分区是在位列“存档”上执行的,因此当设置存档位时,行会自动移动。

最初的测试似乎表明这两种方法都差不多,可能稍微偏向于两个表(10,000 行)上的分区,但我正在增加数据量(500,000 行以上)和线程(超过 1 个并且做不同事情)起来看看会发生什么。

但是,除此之外,如果您使用正确的测试,基准测试可以证明任何事情:-) 所以我也在寻求任何真实世界的经验(正面和负面),包括分区可能添加的限制、意外的性能命中或(反过来例如)更好的可管理性。

干杯,

克里斯

0 投票
3 回答
507 浏览

database - 具有离线访问的分布式键值数据存储(静态分区)

需要能够将复制所有信息的服务器设置为拥有所有数据的主数据存储。

还需要专门存储/复制本地 LAN 中可用的某些数据的服务器,以便当互联网连接中断时,他们仍然可以访问其本地数据。正常情况下,客户端会从本地局域网访问大部分数据,当本地局域网服务器宕机时,可能会使用其他数据。

这与分布式数据存储的好处(例如抗故障性和速度)一起需要。

哪种分布式键值数据存储或其他数据存储方法最适合这种情况?

0 投票
5 回答
320 浏览

python - 是否有任何巧妙有效的算法来对字符串的分区空间进行计算?

我正在从事一个统计项目,该项目涉及迭代所有可能的方式来划分字符串集合并在每个上运行一个简单的计算。具体来说,每个可能的子串都有一个与之相关的概率,我试图得到分区中子串概率乘积的所有分区的总和。

例如,如果字符串是“abc”,那么将有“a”、“b”、“c”、“ab”、“bc”和“abc”的概率。字符串有四种可能的分区:“abc”、“ab|c”、“a|bc”和“a|b|c”。该算法需要找到每个分区的分量概率的乘积,然后将四个结果数相加。

目前,我编写了一个 python 迭代器,它使用整数的二进制表示作为分区(例如,上面的示例中的 00、01、10、11)并简单地遍历整数。不幸的是,这对于长度超过 20 个字符的字符串来说非常慢。

任何人都可以想出一种巧妙的方法来执行此操作,而无需一次简单地遍历每个分区吗?我已经坚持了好几天了。

作为对一些评论的回应,这里提供了更多信息:
字符串可以是任何东西,例如“foobar(foo2)”——我们的字母表是小写字母数字加上所有三种类型的大括号(“(”、“[”、“{ ")、连字符和空格。
目标是在给定单个“单词”可能性的情况下获得字符串的可能性。所以 L(S='abc')=P('abc') + P('ab')P(' c') + P('a')P('bc') + P('a')P('b')P('c') (这里“P('abc')”表示'word' 'abc',而 "L(S='abc')" 是观察字符串 'abc' 的统计似然度)。

0 投票
1 回答
305 浏览

tomcat - 将 webapp 分解成多个部分(tomcat)

我有一个大型的单体 web 应用程序,每当我对 web 应用程序的特定部分进行更改时,我都被迫部署整个应用程序。

我想根据功能将其分解为更小的块(例如在银行网站中 - 我想将信息内容与网上银行功能分开,所以如果我对网上银行功能进行更改,我只需部署该部分)

这里的挑战是 webapp 中是否存在某些公共元素,例如跨应用程序共享的公共类。

关于可以完成 webapp 分区的不同方式的任何想法?谢谢。

0 投票
1 回答
460 浏览

oracle - Oracle 10g 分区:我可以对子表进行分区吗?

我有一个带有主键和分区列(日期)的主表和五个使用外键引用主键的子表。

Oracle 10g 有没有办法以与主表相同的方式对子表进行分区而不复制分区列?

0 投票
3 回答
5255 浏览

oracle - 我应该如何在 Oracle 中使用 varchar2 列对索引进行范围分区?这是个坏主意吗?

我正在使用 Oracle 10g 企业版。

我们的 Oracle 数据库中的一个表存储另一个文本列的 soundex 值表示。我们正在使用自定义 soundex 实现,其中 soundex 值比传统 soundex 算法(例如 Oracle 使用的算法)生成的要长。这真的是无关紧要的。

基本上我有一个 varchar2 列,它的值包含单个字符,后跟动态数量的数值(例如'A12345'、'S382771'等)。该表由另一列分区,但我想将分区索引添加到 soundex 列,因为它经常被搜索。当尝试使用 soundex 列的第一个字符添加范围分区索引时,效果很好:

但是,为了更均匀地分配分区的大小,我想通过前两个字符定义一些分区,如下所示:

我不确定如何使用 varchar2 列正确划分分区。我确信这是一个不太理想的选择,所以也许有人可以推荐一个更好的解决方案。这是我表中 soundex 数据的分布:

如您所见,分布不是均匀分布的,这就是为什么我想使用前两个字符而不是第一个字符来定义范围分区。

建议?

谢谢!

0 投票
1 回答
10201 浏览

oracle - 全局分区索引是否比非分区索引更好(更快)?

我很想知道对通常是查询目标的数字列进行分区是否有性能优势。目前我有一个包含约 5000 万条记录的物化视图。当使用常规 b 树索引并按此数字列进行搜索时,我的成本为 7,查询结果大约需要 0.8 秒(使用非主缓存)。在为该列添加全局哈希分区(具有 64 个分区)后,我得到了 6 的成本,并且查询结果在大约 0.2 秒内(再次使用非主缓存)。

我的第一反应是分区索引提高了我的查询性能。但是,我意识到这可能只是一个巧合,可能完全取决于正在搜索的值,或者我不知道的其他值。所以我的问题是:将全局哈希分区添加到大表上的数字列是否会带来性能优势,或者确定要扫描哪些索引分区的成本是否超过了仅在一个上进行全范围扫描的成本?非索引分区?

我敢肯定,就像许多 Oracle 问题一样,可以用“视情况而定”来回答这个问题。:) 我有兴趣了解我应该考虑哪些因素来确定每种方法的好处。

谢谢!