问题标签 [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 回答
1286 浏览

sql-server - 基于变量值的分区表 - SQL Server 2008

我是否可以在一个范围内指定从 GETDATE() 开始在 CreatedDate 列中具有值的所有行都应该放在一个分区中,其余的放在另一个分区中,以便我应该查询第二个分区的最新数据和第一个归档的数据数据?

0 投票
1 回答
4510 浏览

mysql - AZ 的 MySQL 5.5 分区表

我知道从 MySQL 5.5 开始,您现在可以按非整数值(如 varchar)对表进行分区。我有一个表,我在其中对单个 varchar 列执行大量查找,因此出于性能原因我想对其进行分区。

在所有情况下,列的值都是单个字母单词(严格小写 az,由验证强制执行)。

我想做的是按存储的每个单词中的第一个字母对该表进行分区,因此所有以“a”开头的单词都进入第一个分区,“b”进入第二个分区,依此类推。

我的直觉是,我可能可以构造 create/alter table 语句来使用 LIKE 语句,但不确定语法。

有没有人使用 MySQL 5.5 做过类似的事情?

0 投票
2 回答
466 浏览

mysql - 如何在 Mysql 中使用 LIKE 条件对表进行分区

我有一个大表来按 varchar(200) 类型的字段的值进行分区。我已经阅读了这个问题,但是因为字段的大小我不能使用这个解决方案。
我的问题是:我可以使用 Like 标准作为 LIKE 'b%' 或 LIKE 'o%' 等等吗?
如果没有,我该如何解决这个问题?

在此先感谢,
安东尼奥

0 投票
3 回答
15869 浏览

oracle - 在 oracle 11G 中自动删除最旧的分区

如果分区超过三个月,我需要从间隔分区表中删除分区。

是否有 oracle 实用程序/功能来执行此操作?或者如果没有,如何实现?请指导我。

0 投票
4 回答
2670 浏览

sql-server-2008 - 数百万条记录的单表与多表

这是场景,旧数据库有这种设计

我在这个表 dbo.TableAllYears 中合并了 1998 年到 2011 年的所有数据

现在它们都由“应用程序编号”索引并且具有相同的列数(实际上是 56 列..)

现在当我尝试

第一个查询有 139669 行 @ 13 秒,而第二个查询有相同的行数但 @ 30 秒

所以对你们来说,我只是错过了一些东西,还是多张桌子比单张桌子好?

0 投票
1 回答
103 浏览

oracle - 分区索引

我在 Oracle 中删除了分区表上的索引。有没有办法在同一个分区表上重新创建索引?

0 投票
1 回答
562 浏览

mysql - 创建mysql分区时出错

当我尝试创建分区时,它向我显示此错误。

SQL查询:

CREATE TABLE t1( id INT, val INT )PARTITION BY HASH( val )( PARTITION p0 MAX_ROWS =200 MIN_ROWS =10, PARTITION p1 MAX_ROWS =100 MIN_ROWS =20 )

MySQL 说:文档

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PARTITION BY HASH(val) ( PARTITION p0 MAX_ROWS=200 MIN_ROWS=10, PARTITION' at line 2

请帮我

0 投票
1 回答
435 浏览

mysql - 分区和子分区mysql表

我的表结构是

我需要根据源上的圈子和子分区对此进行分区。

圆圈:是一组 11 个值中的 2 个字符(“AA”、“XB”、“BT”...)

来源:可以是“RNE”(子分区 1)或“PR”(子分区 2)或任何其他字符串(子分区 3)。

我该如何进行这种分区?

0 投票
4 回答
594 浏览

mysql - MYSQL:需要帮助快速增长的表和降低速度(4mio 行)

我正面临着一个快速增长的表格的一些问题(目前有 4mio 行,每天 300k 插入)。我希望我能在这里得到一些想法和建议,以改进我的设置并从我的盒子里挤出最后一点,在不久的将来它会关闭我的网站之前。

设置:

表定义:

查询:

这是我正在执行的唯一查询,除了 x1、y1、x2 和 y2 的值​​每次查询都会发生变化。这是一个 2D 画布,每一行代表画布上的一条线。猜猜知道为 1 个字段选择的最大范围永远不会大于 1200(像素)也很重要。几周前,我升级到 MySQL 5.5.10 并开始使用分区。'x1 % 10000' hashw 作为我进入分区主题的第一个也是不知道的方法。它已经在 SELECT 速度方面给了我相当大的提升,但我确信仍有优化的空间。

哦,在你问之前......我知道我正在使用 MyISAM 表。我的一个朋友建议使用 innoDB,但已经尝试过,结果是表大了 2 倍,SELECT 性能大幅下降。我不需要花哨的事务和东西……我需要的只是最好的 SELECT 性能和 INSERT 的良好性能。

你会改变什么?我可以以某种方式调整我的索引吗?我的分区设置是否有意义?我应该增加分区文件的数量吗?

欢迎所有建议...我还与朋友讨论了将本地复制到内存表中,但我敢肯定,表大小超过我的 RAM 只是时间问题,而交换盒是一件相当丑陋的事情看。

当您考虑我的问题时,请记住它正在快速且不可预测地增长。万一它因为某种原因在某个地方传播开来,我预计每天会看到超过 1mio INSERTS。

感谢您阅读和思考。:)

编辑:请求的解释结果

EDIT2:请求的 my.cnf

innoDB 值用于我的 innoDB 尝试……猜想它们不再需要了。该服务器还运行 4 个其他网站,但它们相当小,不值得一提。不管怎样,我很快就会把这个项目转移到一个专用的盒子里。你的想法可能很激进——我不介意实验。

EDIT3 - 带索引的基准

好的,伙计们......我已经用不同的索引做了一些基准测试,到目前为止结果非常好。对于这个基准测试,我选择了一个 2000x2000 像素框内的所有行。

使用我在上面发布的表/索引定义,平均查询时间是:1740ms

然后我删除了所有索引,除了主键-> 1900ms

为 x1 -> 1800ms 添加了一个索引

为 y1 -> 1700ms 添加了一个索引

为 x2 -> 1500ms 添加了一个索引

为 y2 -> 900ms 添加了一个索引!

到目前为止,这真是令人惊讶……出于某种原因,我认为为 x1/y1 和 x2/y2 制作组合索引会以某种方式有意义,但实际上看起来我错了。

EXPLAIN 现在返回:

现在我想知道为什么它使用 y1/y2 作为键而不是全部四个?

但是,我仍在寻找更多的想法和建议,尤其是关于分区和正确的散列。

0 投票
4 回答
59350 浏览

mysql - 如何按日期时间列对表进行分区?

我想按日期时间列对 mysql 表进行分区。一天一个分区。创建表的脚本是这样的:

但是当我选择某天的数据时,它找不到分区。选择语句是这样的:

当我使用另一个语句时,它可以找到分区,但我不能选择某一天的数据。

有没有人告诉我如何选择某一天的数据并利用分区。谢谢!