问题标签 [database-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 投票
2 回答
1522 浏览

algorithm - 关系数据库是否能够利用一致性哈希的方式来做分区表?

假设我们有一个用户表,用户 id 将其分区为整数 1,2,3...n 。我可以使用用于分区表的一致性哈希的方式吗?

好处是,如果分区数量增加或减少,旧索引可以相同。

问题A。

使用一致性哈希算法做分区表是个好主意吗?

问题B。

任何关系数据库都支持这个吗?

我猜一些 nosql 数据库已经在使用它。

但是这里的数据库是指关系数据库。

我刚刚在一次采访中遇到了这个问题。在第一反应中,我只是按长度回答了 mod,但是如果将表划分为更多部分,则会受到挑战,那么它会导致问题。

0 投票
1 回答
780 浏览

mysql - 按主键和 2 个索引对 mysql 表进行分区和子分区以提高性能

我有一个非常大的表,我在上面执行了一个非常简单的查询,比如 id 查找。由于表行的增加,查询随时间变慢。我在一秒钟内执行了大约 300 个查询,这使我的脚本运行缓慢并且我的内存达到 99%(内存低于数据库的大小)我想对表进行分区和子分区以获得最大性能,这是我的表(out 30 个类似的表),请添加代码,因为我对分区很陌生,不太了解。选择查询只是用于 id 查找和简单插入的 where 子句。我想将 RAM 升级为高于 DB 大小,但我想避免它,我不知道它是否会比分区更好地解决问题。

这是我的查询的一些示例:

每个查询大约需要 0.05-0.2 秒

我在每个表中有大约 5-10 百万行。

DB 大小为 10GB 我考虑将 RAM 升级到 16GB

0 投票
2 回答
3048 浏览

mysql - MySQL中表的垂直分区

另一个问题。

是宽表更好vertically partition(在我的例子中,我正在考虑将登录详细信息从用户的地址、个人等详细信息中拆分出来)design stage还是更好地保留它并在获得一些数据并执行之后对其进行分区profiling

答案似乎很明显,但我担心行拆分表有时将意味着重写用户模型的额外工作+将经常访问的登录详细信息与更多静态个人详细信息拆分似乎是合理的。

任何人都对如何进行有一些经验支持的建议:)?提前致谢。

0 投票
2 回答
6428 浏览

mysql - 转换为分区表

我有以下表结构,其中包含实时数据:

我想将其转换为具有以下结构的分区表:

我该如何进行这种转换?

只需将第二条 SQL 语句的第一行更改为

这会做吗?

从 MySQL 5.0 到 5.1。

0 投票
1 回答
256 浏览

sql-server - 将表移出分区

我有一个非常大的表(800GB),它有一个 DATETIME 字段,它是分区模式的一部分。此字段名为 tran_date。我遇到的问题是索引未与分区正确对齐,并且我无法在 PRIMARY KEY 中包含 tran_date 字段,因为它设置为可为空。

我可以删除所有外键关系、统计信息和索引,但我不能修改列,因为分区模式仍然依赖于 tran_date 列。

在我的研究中,我找到了一种将表移出分区的方法,即删除聚集索引,然后将聚集索引重新写入 PRIMARY 文件组,这将允许我修改列,但此操作需要要删除几个小时,在 PRIMARY 上编写临时 CLUSTERED INDEX 需要 13 个小时,然后我必须删除它,更改表,然后正确地重新编写 CLUSTERED INDEX,这需要另外 13 个小时。另外我有不止一张桌子。

当我在我的开发环境中使用类似大小的数据集测试此部署时,需要几天时间才能完成,因此我正在尝试寻找减少时间的方法。

如果我可以将表移出分区而不必在 PRIMARY 上写入 CLUSTERED INDEX,它将显着减少更改列所需的时间。

0 投票
1 回答
1203 浏览

mysql - 为 mysql 使用 Spider

我正在寻找解决方案来在不更改应用程序代码的情况下在 mysql 中对我的数据进行分片,并且该项目在谷歌搜索结果中显示得很深。

虽然没有太多关于此的可用文档,但这似乎是一个很有前途的开箱即用解决方案,可以将您的数据分片到多个数据库中。

这是他们对mysql的项目描述蜘蛛

蜘蛛存储引擎可以将不同 MySQL 实例的表视为同一个实例的表。由于支持xa事务和分区,它可以对同一张表的两个或多个服务器进行分散排列。

新的存储引擎“Spider”确实因其强大的可扩展性来访问 MySQL 的其他存储引擎,主要考虑如下;

1:可扩展性

2:更快的访问

3:数据同步

4:降低成本

它仍然是一个非常活跃的项目(它目前支持 mysql 5.5.14),但我在搜索引擎上没有看到很多结果。你们能告诉我为什么吗?

由于我在该领域没有太多知识来评估这一点,所以我想问一下使用这种方法时的优缺点。Spider存储是SPOF吗?

我可以有多个Spider存储,如果这样做会影响事务提交吗?

在决定切换到 MongoDB 之前,我需要考虑这种方法。我的应用程序是一个编写密集型应用程序(一个社交网络项目)。而且未来确实需要完美的横向扩展。

0 投票
1 回答
103 浏览

mysql - Mysql 表分区

我正在尝试创建分区但未能成功。这是我的表结构

你知道如何在不删除主要或更改表结构的情况下创建任何类型的分区。

0 投票
5 回答
110734 浏览

function - 如何在 hive 中将 unix 纪元时间转换为日期字符串

我有一个包含时间戳列的日志文件。时间戳采用 unix 纪元时间格式。

我想根据带有分区年、月和日的时间戳创建一个分区。

到目前为止,我已经这样做了,但它抛出了一个错误。

这是我的代码。

0 投票
3 回答
464 浏览

sql-server-2008 - 在非唯一列上创建聚集索引和/或分区?

我有一个表,其中包含大约一千个 Web 服务器一周的日志条目。每个服务器每天向表中写入大约 60,000 个条目,因此每个服务器每周有 420,000 个条目。该表每周截断一次。每个日志条目都包含服务器名称,它是一个 varchar(不能更改)。

主要操作是 to select * from table where servername = 'particular',以便为服务器检索 420,000 条记录,然后 C# 程序在选择后分析来自该服务器的数据。

我应该在 servername 列上创建一个聚集索引来加快读取操作吗?(目前执行上述SQL语句需要半个多小时。)

分区有帮助吗?计算机只有两个物理驱动器。

该查询每周为每台服务器运行一次。对所有服务器运行查询后,该表将被截断。

0 投票
3 回答
1779 浏览

sql-server-2005 - 分区是否适用于 SQL Server 2005 标准版 SP2

我在测试环境中使用带有 SP2 的 SQL Server 2005 标准版。我的本地 SQL Server 是开发人员版本。

我能够在本地计算机上对表进行分区。我知道 SQL Server 标准版不支持索引视图或分区。我只是想知道 SP2 是否对标准版有任何影响。

谢谢维哈尔。