加载大型数据集的Matlab返回0

时间:2018-02-25 22:54:01

标签: mysql matlab large-data

我正在尝试从MySQL数据库加载一个简单但相当大的表到Matlab(表格大约是16'000'000 x 18)

MySQL数据库大小为2.6 GB,我的Windows机器有32 GB的内存,因此原则上内存应该不是问题。

我尝试通过简单的提取来加载数据:

curs = exec(conn,['SELECT * FROM mydb.large_table']);
curs = fetch(curs);
data = curs.Data;

我也尝试使用select函数,但在两个实例中data只返回为0.

由于没有错误消息,并且因为我似乎没有接近任何matlab或内存大小限制,所以我无法理解出现了什么问题。

非常感谢任何帮助。

[补充说:]

进行了一些进一步的检查:

  • 尝试为表预先分配内存,拉入表的第一行,然后将其复制2000万次。没问题。
  • 能够拉入2.5米的行。 6米再次失败
  • 看着内存消耗(Windows任务管理器),我注意到exec语句将数据库中的所有数据都拉到了本地机器上,fetch命令开始占用内存。对于6m行,使用的内存首先增加到完全可用的32 GB,然后降低到2GB(它停留的地方),但是Committed内存增加了惊人的125 GB!

我完全不知道这里发生了什么

0 个答案:

没有答案