2017-02-03 203 views
0

我有大约400万行的表,每行包含30列。它应该每天都以新的行数越来越大。Navicat消息 - 内存不足

当我想在250万的浏览器中看到所有的数据时,它会给我留下内存不足的消息,在我看来,它与服务器资源无关?

此外,我试图右键单击连接 - >执行SQL文件,它运行succesfull,但它不显示数据。

+0

另一个第三方工具的例子阻碍了吗? –

+0

@RickJames sry,但我不明白你的问题? – MPetrovic

+1

_Probably_使用“mysql”命令行工具不会有这个问题。在应用程序和MySQL之间的Navicat和其他第三方软件包往往会有局限性,除非您强调它们才会显示出来。获取4M行是一种压力。 –

回答

0

你有一张大桌子。当您尝试以结果集的形式检索表的全部内容时,似乎您的客户端软件(Navicat)无法获得足够的RAM来保存它。

SQL的整个目的允许处理非常大的表:特别是不适合RAM的表。因此,将整个表格放入客户端是没有意义的。

如果你必须由于某种原因检索整个表,请尝试mysqldump命令行文件,并将其放入一个文件中。

您可能希望在客户端程序查询结束时使用LIMIT 1000子句或某些此类事物。

+0

我想读取Navicat中的所有数据,如果我使用LIMIT1milion或LIMIT 1000 OFFSET 1000,这并不能解决客户端Navicat中的问题,因为您将始终看到相同的结果,因此无法通过下一行1000行。有了查询,它工作正常,只有我无法在浏览器中加载所有数据 – MPetrovic

+0

你的意思是“我需要在我的皮卡车上运载十四吨煤,但是每当我将煤装入卡车时,轮胎爆炸了。告诉我什么样的轮胎不会爆裂?“看,你正试图把一个非常大的结果集放到一个中等大小的程序中。你不能这样做。 –

+0

如果您不知道数据质量是什么,那么构建应用程序的目的是什么?什么是做体力劳动和500k回到500k ..的目的?必须有一些正常的方法来查看所有的数据,并且看看我能如何以及我需要什么来规范化数据 – MPetrovic