Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将大型mysql表导出到JSON_Php_Mysql_Json - Fatal编程技术网

Php 将大型mysql表导出到JSON

Php 将大型mysql表导出到JSON,php,mysql,json,Php,Mysql,Json,我有一个包含280万条记录的mysql表,我想将所有这些都转换成JSON。我写了一个脚本来转换,但是它在内存警告下停止了 然后我尝试创建更小的文件(file1是0, 对于100000条记录,文件2是100000到1000000条记录等),并与windows copy命令相结合。它可以工作,但是每个文件都是一个JSON数组(比如[{…}]),当它合并时,它会变成独立的部分,比如[{}][{}](我希望它像[{………}]) 有更好的解决方案吗?我建议您更改php.ini配置中的“内存限制”。另外,如

我有一个包含280万条记录的mysql表,我想将所有这些都转换成JSON。我写了一个脚本来转换,但是它在内存警告下停止了

然后我尝试创建更小的文件(file1是0, 对于100000条记录,文件2是100000到1000000条记录等),并与windows copy命令相结合。它可以工作,但是每个文件都是一个JSON数组(比如[{…}]),当它合并时,它会变成独立的部分,比如[{}][{}](我希望它像[{………}])


有更好的解决方案吗?

我建议您更改php.ini配置中的“内存限制”。另外,如果这需要很多时间,那么您可以通过cron作业(如果可能的话)来处理这个问题


您可以解码所有json文件并将其合并到单个数组中,然后再次用json编码并放入json文件中

我终于做到了。请参阅步骤(我不确定这是否正确,但它可以工作)

我的表中总共有260万条记录。我创建了一个脚本,它将选择mysql行,转换为json并写入文件

选择0到100万之间的记录并创建文件1。对于文件2和文件3,重复从100万到200万以及从200万到260万的操作


使用JQ()组合这些文件并创建一个JSON文件。

当您将不需要的大括号复制到一起时,您不能删除它们吗?为什么不将每个记录分别转换为JSON并将它们一次写入一个文件一条记录?如果你“批量”取表,速度会很快。内存使用将是最小的。根据行的大小,假设每行300字节,输出文件大约为1GB(GB)。