【问题标题】:Export BIG mysql table to JSON将 BIG mysql 表导出为 JSON
【发布时间】:2015-06-26 11:09:59
【问题描述】:

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

然后我尝试创建较小的文件(file1 为 0, 到 100000 条记录,文件 2 是 100000 到 1000000 条记录等)并结合 windows 复制命令。它可以工作,但每个文件都是一个 JSON 数组(如 [{...}]),当它合并时,它变成单独的部分,如 [{}][{}](我想要它像 [{.... ......}])

有没有更好的解决方案?

【问题讨论】:

  • 不能把不需要的大括号删掉吗?
  • 为什么不将每条记录单独转换为 JSON 并将它们一次写入一条记录的文件?如果您分批获取表格,它将非常快。内存使用量将是最小的。根据行的大小,假设每行 300 字节,输出文件大约为 1GB(千兆字节)。

标签: php mysql json


【解决方案1】:

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

或

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

【讨论】:

    【解决方案2】:

    最后我做到了。请查看步骤(我不确定这是正确的,但它有效)。

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

    从 0 到 100 万选择记录并创建文件 1。对文件 2 和文件 3 从 1 到 200 万和 2 到 260 万重复。

    使用 JQ (http://stedolan.github.io/jq/) 组合这些文件并创建一个 JSON 文件。

    【讨论】:

      猜你喜欢
      • 2020-10-06
      • 2018-06-20
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 2013-06-01
      • 2011-06-29
      相关资源
      最近更新 更多