问题标签 [large-data-volumes]

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 回答
2647 浏览

c++ - 为 C++ 寻找易于使用的嵌入式键值存储

我需要编写一个 C++ 应用程序来读取和写入大量数据(超过可用 RAM),但始终以顺序方式进行。

为了将数据保存在未来的证明中并且易于记录,我使用协议缓冲区。然而,协议缓冲区不处理大量数据。

我之前的解决方案包括为每个数据单元创建一个文件(并将它们全部存储在一个目录中),但这似乎不是特别可扩展。

这次我想尝试使用嵌入式数据库。要拥有类似的功能,我只需要存储 key->values 关联(因此 sqlite 似乎有点矫枉过正)。值将是来自 Protocol Buffer 的二进制序列化输出。

我希望数据库能够管理“在内存中保留什么,将什么移动到磁盘 asp”问题,“如何在磁盘上有效地存储大量数据”问题,理想情况下,优化我的顺序读取模式(通过读取之前的下一个条目)。

寻找替代品 我对缺乏替代品感到惊讶。我不想将数据库保留在一个单独的进程中,因为我不需要这种分离(这排除了 redis)。

我发现的唯一选择是 Berkeley DB,但它有一个令人不快的低级 C api。然后,我发现最好的选择是在 Berkeley DB 之上的 stldb4。API 看起来很不错,符合我的需要。

不过我很担心。stldb4似乎很奇怪(它依赖于 libferris 的东西),未维护的解决方案(一年前的最后一个版本),对于一个我认为很常见的问题。

你们中有人对如何管理这个问题有更好的建议吗?

感谢您的回答。

0 投票
4 回答
1305 浏览

filter - Common Lisp:在非常大的列表上使用此过滤器功能有什么缺点?

我想从列表'b 中过滤掉列表'a 的所有元素并返回过滤后的'b。这是我的功能:

我是 lisp 的新手,不知道 'remove 是怎么做的,这个过滤器会在什么时间运行?

0 投票
2 回答
3739 浏览

mysql - 使用 MySQL 搜索大型数据集?

现在我是一名非常高级的 PHP 开发人员,并且对小型 MySQL 集有丰富的知识,但是我现在正在为我最近加入的一家初创公司构建一个大型基础架构,他们的服务器每天使用他们的服务器推送大约 100 万行数据强大的服务器能力和以前的架构。

我需要知道在数据库大小为 394.4 GB 的大型数据集(目前位于 8490 万行)中搜索的最佳方法是什么。它使用 Amazon RDS 托管,因此它没有任何停机时间或运行缓慢,只是我想知道在内部访问大型数据集的最佳方式是什么。

例如,如果我想搜索一个有 8400 万行的数据库,我需要 6 分钟。现在,如果我直接请求特定的 ID 或标题,它会立即为它服务。那么我将如何搜索大型数据集。

提醒您,通过传入一个变量通过数据库查找信息很快,但在搜索时执行速度非常慢。

MySQL查询示例:

84m 行下的查询非常慢。特别是 47.41 秒独立执行此查询,有什么想法吗?

我所需要的只是对挑战进行排序,然后我就可以随波逐流了。另外,我知道 MySQL 对于大型数据集以及 Oracle 或 MSSQL 之类的东西不是很好,但是我被告知现在要在 MySQL 而不是其他数据库解决方案上重建它。

0 投票
4 回答
6291 浏览

drop-down-menu - 巨大下拉列表的替代品(24,000+ 项)

在我的管理部分,当我编辑项目时,我必须将每个项目附加到父项目。我有超过 24,000 个父项的列表,它们按字母顺序列在下拉列表(音乐艺术家列表)中。

在下拉菜单中列出所有这些项目的编辑页面是 2MB,对于使用旧机器的人来说,它会像疯了一样滞后,尤其是在 Internet Explorer 中。

什么是复制相同功能的好选择,我需要从这 24,000 名艺术家中选择 1 名,而实际上无需将它们全部预加载到下拉菜单中。

0 投票
1 回答
574 浏览

wpf - 在 DataGrid 中显示大型集合

集合中的项目数量:~100k 列中显示的字段数量:4-10

问题本身 - 集合是从使用 EntityFramework 的数据库中获取的。在开发计算机上加载和具体化所有所需数据大约需要 10-12 秒。出现的另一件事是同一个集合可以绑定到多个控件,因此,它们必须单独过滤(= 不设置默认集合视图过滤器)。目前,我将绑定设置如下:

创建一个新的 CollectionViewSource 大大增加了初始化所需的时间 - 几分钟(我怀疑它出于某种原因枚举了 100k 集合)。我的意思是,如果我只是设置:

从数据库加载和具体化数据只需 10-12 秒。

问题 - 我的代码有问题吗?如果不是 - 将相同的大型集合绑定到不同的项目控件但具有不同的集合视图的正确方法是什么?

0 投票
2 回答
6896 浏览

python - psycopg2 COPY 使用 cursor.copy_from() 冻结大输入

考虑以下 Python 中的代码,使用 psycopg2cursor对象(为清楚起见,更改或省略了一些列名):

  • 该数据库位于快速 LAN 上的远程计算机上。
  • 使用\COPYfrom bash 的速度非常快,即使对于大型(约 1,000,000 行)文件也是如此。

这段代码对于 5,000 行来说是超快的,但是当data.csv超过 10,000 行时,程序会完全冻结。

任何想法\解决方案?

亚当

0 投票
2 回答
4018 浏览

php - PHP cURL 'Fatal error: Allowed memory size' for large data sets

I know about the option to set the internal memory

But I wanted to know if there is a better approach for querying data?

I have a WHILE LOOP that checks to see if I need to query for another 1000 records. using the offset as the starting record number and the limit as the returned records, I search for all records matching my data request. I hit about 100K in records before I get the error.

Now during testing I found that I get the 'Fatal error: Allowed memory size...' error. I've read by setting the above ini_set() to allow for the increase in memory but I wanted to know if I could just code it better?

Each time I execute the code below in the WHILE LOOP, the memory usage grows very large. Even if I unset($curl). I think it could be reduced if I could unset the $result and $curl variables after I have parsed out the results before the next cURL query.

WHILE LOOP (Slim version)

Some memory numbers

  • Before Call Memory Usage: 1819736
  • After Call Memory Usage: 2285344
  • keep data I need
  • dump data I don't need
  • Next LOOP Iteration
  • Before Call Memory Usage: 2084128
  • After Call Memory Usage: 2574952
0 投票
1 回答
2658 浏览

sql - 一次仅获取 N 行(MySQL)

我正在寻找一种方法来以较小的块从一个巨大的表中获取所有数据。

请指教。

0 投票
1 回答
315 浏览

javascript - 如何有效地选择/查询 70,000 json 数据?

我现在正在开发包含印度尼西亚 70,000 多个村庄的 javascript 库(可在http://bisbak.com/regina/访问),并且我构建了一个数据浏览器小部件。在 Safari 和 Firefox 中一切正常。但是在使用 Chrome 时,当我碰巧选择一个地区(自动加载村庄)时,总是需要很长时间。检索地区村庄的代码如下:

数据是具有 70,000 多个村庄钥匙的 json 对象。

0 投票
5 回答
331 浏览

java - 如何让用户轻松选择在 Java Swing 应用程序中分配多少内存?

我们有一个处理相对大量数据的 Swing 应用程序。例如,我们目前处理包含数百万行数据的 CSV 文件。出于性能和简单性的原因,我们只是将所有数据保存在内存中。然而,不同的用户需要处理不同数量的数据以及不同数量的 RAM。在创建安装程序时,我们当然需要指定堆大小。是否有任何简单的方法可以让用户指定堆,而无需手动编辑配置或 .bat 文件?我猜并非所有用户都会对此感到满意。

我见过一个例子,其中一个应用程序指定了三个不同的快捷方式,每个快捷方式都指定了不同的内存量。这可以工作,但我想要一个更灵活的选项。然后,用户可以选择最适合他们的那个。