问题标签 [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 投票
1 回答
308 浏览

mysql - mysql分区

我想按列名 YEAR 和列名 MONTH 进行分区。在另一个列表中使用 LIST for YEAR 和 SUB PARTITION by MONTH 似乎会很好。

子分区部分的语法是什么?

是否可以将一个列表与另一个列表进行子分区?

或者我应该使用不同的分区方案?

0 投票
0 回答
373 浏览

mysql - mysql database automatic partitioning

Possible Duplicate:
mysql database automatic partitioning

This is an exact duplicate of the question here. Unfortunately that question was only answered by people posting links to sites that no longer work, so I'm hoping someone can, I don't know, re-post the solution where I can find it?

Anyway, the question is, how do I automatically update mysql database partitions. For example, if I want to have 3 partitions, representing 'this month', 'last month', and 'further in the past', how would I do it?

I can see how to create the partitions, but when this month rolls over to the next, I need them to automatically change. For instance, if today is november 29, the three partitions should have the data from november, october, and dates further back. Then a day later on december 1st, I want the three partitions to be december, november, and further back.

I assume this is possible, as the other question did have an accepted answer, so how do I do it?

0 投票
1 回答
581 浏览

mysql - 历史/审计表的设计建议

我需要全程跟踪许多项目及其状态。

例子

现在,这是一个巨大的表,我使用 MySQL 的伪排名函数来执行查询。

但是,它非常缓慢。查询无法使用索引,因为对于任何特定项目,它必须先找到 rank = 1 的项目,然后才能执行任何过滤。

您在实现此类功能方面有何经验?您推荐的数据库设计是什么?由于支持分区查询,像 Oracle 或支持 T-SQL 的数据库这样的数据库会更好吗?

提前感谢您的任何想法!

0 投票
4 回答
2195 浏览

database-design - 要索引的列太多 - 使用 mySQL 分区?

我们有一个应用程序,其中包含一个包含 20 多个列的表,这些列都是可搜索的。为所有这些列建立索引会使写查询非常慢;并且任何真正有用的索引通常都必须跨越多个列,从而增加所需的索引数量。

然而,对于 95% 的这些搜索,只需要搜索这些行的一小部分,而且数量相当少——比如 50,000 行。

因此,我们已经考虑使用 mySQL 分区表 - 有一个基本上isActive是我们划分两个分区的列。大多数搜索查询将使用isActive=1. 然后,大多数查询将针对 50,000 行的小分区运行,并且在没有其他索引的情况下很快。

唯一的问题是isActive=1未固定的行;即它不是基于行的日期或任何类似的固定;我们将需要isActive根据该行中数据的使用情况进行更新。据我了解,这没问题;在 UPDATE 查询期间,数据只会从一个分区移动到另一个分区。

不过,我们确实有一个PK在行上id;我不确定这是否有问题;该手册似乎建议分区必须基于任何主键。这对我们来说将是一个巨大的问题,因为主键 ID 没有根据是否行isActive.

0 投票
4 回答
1123 浏览

sql - 用于虚拟显示数据的 SQL 复杂视图

我有一张带有下表的表格。

因此,这显示了在数量发生变化的某些小时内的库存。现在我的要求是在此表上创建一个视图,该视图将虚拟显示数据(如果特定小时内的库存不充足)。所以应该显示的数据是

这意味着即使某个特定小时的数据不存在,我们也应该显示最后一小时的库存。我有另一个表格,列中有从 1 到 23 的所有可用时间。

我已经尝试通过下面给出的方法进行分区。但我认为我在这方面缺少一些东西来完成我的要求。

对于没有数据的时间,此查询将所有带库存的时间设为空。我们正在研究 ANSI sql 解决方案,以便它可以用于 Teradata 等数据库。

我在想我错误地使用了分区,或者还有其他方法。我们尝试了 CASE WHEN ,但这需要某种循环来检查一个小时的库存。

0 投票
2 回答
1082 浏览

performance - SQL Server 分区表性能

我正在使用 SQL Server 2008 企业版。我有 2000 年到 2010 年的年度客户数据,从 2000 年到 2009 年,我只需要读取,而在 2010 年,我需要读取和写入。

所以,这个需求和使用场景让我想到了使用 SQL Server 分区表。但我不确定分区表的性能是否比每年只使用一个表(相同模式)更好?我想知道与使用分区表相比,使用轻量级解决方案(即每年自制一张表)是否具有更好的性能。

顺便说一句:每年大约有 100k 行。我只有一个硬盘驱动器。我也想知道分区表和分区视图之间的区别。

提前谢谢,乔治

0 投票
1 回答
218 浏览

mysql - 数据库分区解释

我刚刚阅读了有关数据库分区的内容,但仍然对此有些困惑。所以任何人都请给我一些解释,关于数据库分区背后的磁盘存储(如数据文件,索引文件,......)发生了什么变化,利弊。我更喜欢 MySQL 和 innodb,但欢迎使用另一个 db 进行比较。

0 投票
8 回答
5565 浏览

sql - Mysql提高SELECT速度

我目前正在尝试提高 MySQL 表的 SELECTS 速度,并希望对改进它的方法提出任何建议。

我们在表中有超过 3 亿条记录,并且该表具有结构标签、日期、值。主键是标签和日期的组合键。该表包含大约 600 个唯一标签的信息,其中大多数平均包含大约 400,000 行,但范围从 2000 到超过 1100 万行。

针对该表运行的查询是:

....如果有插入,则很少。

我曾尝试将数据按标签划分为不同数量的分区,但这似乎并没有提高速度。

0 投票
1 回答
414 浏览

sql - 非分区表上的分区索引

尽管有可用的分区功能和方案,但如何在未分区的表上创建分区索引。这是我在某处读到的练习,不是真正的问题

我在想

但是表没有分区,那么如何在不分区表的情况下创建索引呢?

0 投票
2 回答
2600 浏览

sql - 何时对表进行分区的经验法则

我看过很多关于分区表的条目,但是关于何时应该进行分区的信息并不多。

当您应该在 SQL Server 中对表进行分区时,是否有经验法则。

谢谢