问题标签 [large-data]

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 投票
5 回答
270 浏览

java - 有没有办法在内存中加载结果查询?

我有一个巨大的数据库(21 亿行),我需要执行一些计算来提取一些统计结果。据我了解,直接在这个数据库上进行计算显然是不明智的。

我现在要做的是将表的一部分加载到内存中(比如 100 万行)。我不确定如何在不逐行迭代的情况下将 ResultSet 的整个数据块加载到内存中。

任何想法?

0 投票
2 回答
167 浏览

database-design - 数据库设计——大领域

例如,假设我在博客中有一个文章列表。每篇文章都有一张图片,每张图片都有一个缩略图。

显示文章列表时,每篇文章都会显示缩略图;显示单篇文章时,将以全尺寸图像显示。

这意味着我在每篇文章中都有三个大(未知大小)数据项:图像、缩略图和文本。

这些设计的优缺点是什么:

  1. 文章表包括缩略图列和图像列
  2. 文章表包括缩略图列,图像存储在单独的表中
  3. 缩略图和图像存储在一个单独的表中
  4. 缩略图和图像存储在各自单独的表中
  5. 站点对存储图像和缩略图的文件夹具有写入权限,数据库包含 URL/文件名

(任何我没有考虑过的?)

如果它有所作为,我认为它不应该,该站点将使用 Postgres 或 MySql 用 Ruby/Rails 编写。

0 投票
6 回答
592 浏览

php - 高性能多层标签过滤

我有一个包含艺术家、专辑和曲目的大型数据库。这些项目中的每一个都可以通过粘合表(track_attributes、album_attributes、artist_attributes)分配一个或多个标签。有几千个(甚至几十万个)标签适用于每个项目类型。

我正在尝试完成两项任务,并且很难让查询以可接受的方式执行。

任务 1) 获取具有任何给定标签(如果提供)的艺术家在具有任何给定标签(如果提供)的专辑上具有任何给定标签(如果提供)的所有曲目。可能不存在任何一组标签(即只有一个曲目标签处于活动状态,没有艺术家或专辑标签)

变化:结果也可以按艺术家或专辑而不是按曲目呈现

任务 2) 获取应用于上一个过滤器结果的标签列表,以及每个给定标签的轨道数。

我所追求的是一些一般的方法指导。我已经尝试过临时表、内部连接、IN(),到目前为止我所做的所有努力都导致响应缓慢。我所追求的结果的一个很好的例子可以在这里看到:http ://www.yachtworld.com/core/listing/advancedSearch.jsp ,除了它们只有一层标签,我正在处理三层。

表结构:

编辑我正在使用 PHP,我不反对在脚本中进行任何排序或其他 hijinx,我的第一个问题是返回速度。

0 投票
2 回答
1803 浏览

python - Python:使用 list.sort(cmp=myfnc) 的内存高效列表

改进此代码的最佳方法是什么:

与 numpy 数组(6800MB 与 700MB)相比,python 的列表需要大量内存,但 nympy.array 没有带有 cmp 参数的排序函数。

还有其他方法可以提高内存使用率或使用我的 cmp 函数对 numpy 的数组进行排序吗?

更新:我当前的解决方案是一个 C 函数(与 SWIG 共享),它对大量整数进行排序,并在排序后将其返回给 python。

但我希望有一些方法可以使用 Python 实现对巨大数据集的内存高效排序。有任何想法吗?

0 投票
4 回答
32375 浏览

c# - 如果使用带有大对象的可枚举,Parallel.ForEach 可能会导致“内存不足”异常

我正在尝试将图像存储在数据库中的数据库迁移到数据库中指向硬盘驱动器上文件的记录。我试图使用这种方法Parallel.ForEach来加快进程来查询数据。

但是,我注意到我遇到了OutOfMemory异常。我知道Parallel.ForEach如果有一个用于间隔查询的枚举将查询一批可枚举以减轻开销成本(因此,如果您一次执行一堆查询而不是间隔它们,您的源更有可能将下一条记录缓存在内存中出去)。问题是由于我返回的记录之一是一个 1-4Mb 字节数组,缓存导致整个地址空间被用完(程序必须在 x86 模式下运行,因为目标平台将是 32 位机器)

有什么方法可以禁用缓存或使 TPL 更小?


这是一个显示问题的示例程序。这必须在 x86 模式下编译以显示问题,如果它需要很长时间或在您的机器上没有发生增加阵列的大小(我发现1 << 20在我的机器上大约需要 30 秒并且4 << 20几乎是瞬时的)

0 投票
2 回答
500 浏览

hibernate - Hibernate 存储过程调用导致 OutOfMemory

我正在使用 Hibernate 的命名查询来执行一个存储过程,返回一个非常大的数据集(超过 200 万行)数据库是 Oracle 11g

例如: Query query = session.getNamedQuery(procName);

我从休眠文档中知道,您不能使用 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html中所述的 setFirstResult/setMaxResult 。

一切都很好,在像 100,000 行这样的较小数据集上。但是,一旦我使用 1,000,000 进行测试,我就会收到 OutOfMemory 错误。

从查询对象中,我得到一个 listIterator。我假设数据只被提取一次,我遍历 listiterator ( query.list().listIterator())

我没有配置二级缓存。在处理 Oracle 存储过程时,这些设置是否有帮助。

query.setCacheMode(org.hibernate.CacheMode.IGNORE); query.setFetchSize(1000);
query.scroll(org.hibernate.ScrollMode.FORWARD_ONLY);

基本上,我如何使用 Hibernate 中的存储过程来管理大型数据集检索。

百万谢谢

0 投票
2 回答
732 浏览

grails - 如何在不使用数据库切片的情况下在视图中显示大列表?

我有一项服务,它通过多个表的多次迭代和计算生成一张大地图。我的问题是我不能使用分页偏移量对数据进行切片,因为数据来自多个表并且数据发生了不同的修改。在屏幕上显示它;我必须将包含 10-20,000 条记录的地图发送到视图,这对于这个大型数据集来说是有问题的。此时我有页面分页,但这非常缓慢且效率低下。我想的一件事是将它转储到一个表上并每次都查询它,但是我必须处理并发用户。

我的问题是当我无法使用数据库切片(偏移量,最大值)时,显示此列表的最佳方法是什么?

我正在使用 grails 1.0.3 数据表和 jquery

0 投票
2 回答
417 浏览

php - 重构循环?

我想循环超过 200,000 个用户数据集来过滤 30,000 个产品,我该如何优化这个嵌套的大循环以获得最佳性能?

更新:非常感谢。是的,数据在mysql中,下面是主要结构:

我不知道如何只使用一个 sql 来获取所有内容。

0 投票
2 回答
833 浏览

php - INSERT IGNORE 或 INSERT WHERE NOT IN

我有一个 900 万行的表,由于其庞大的规模,我正在努力处理所有这些数据。

我想要做的是在不覆盖数据的情况下将 IMPORT a CSV 添加到表中。

在我做这样的事情之前;如果不在,则插入(从 tblName 中选择电子邮件,其中 source = "number" and email != "email") INTO (email...) VALUES ("email"...)

但我担心我会再次崩溃服务器。我希望能够将 10,000 行插入到表中,但前提是它不在 source =“number”的表中。

否则我会在电子邮件列上使用唯一的。

简而言之,我想通过检查两件事来尽快插入而不向表中引入重复项。如果 email != "email" AND source != "number" 然后插入到表中,否则什么也不做。而且我也不想要错误报告。

我很抱歉我的措辞不好,这个问题听起来有点傻。

我只是很难适应无法通过下载备份并在出现问题时上传来对数据进行测试。我讨厌大型数据集:)

谢谢大家的时间-BigThings

0 投票
5 回答
3230 浏览

java - java: 很大的树?

目标是建造非常大的树。非常大是指数亿个节点,适合几 GB。

问题是常见的数据结构有太多的开销。我买不起“节点”对象和子“地图”。我需要以非常紧凑的方式将其直接编码到内存中。

因此,我想知道是否存在一些具有整数作为键和值的树的内存高效实现,而不在内部使用对象,因此需要(键的 4 字节 + 值的 4 字节 + 子索引的 4 字节 + 免费的几个字节散列空间 = 平均每个条目 15 个字节)这将允许我使用外部映射 int<->keys 和 int<->values 来搜索树。

任何人?

PS:在内部使用对象至少要多使用 5 倍空间:8 个引用 + 4 个额外的哈希空间 + 16 个对象头 + 8 个键引用 + 8 个值引用 + 8 个父引用 + 8 个子引用 + (16 + x) 用于子映射 obj = 每个条目将近 76+x 个字节。(例如,我们的默认实现每个条目需要大约 100 个字节)