gpt4 book ai didi

python - 使用 Python 和 MySQL 通过中间查找大量插入数据

转载 作者:搜寻专家 更新时间:2023-10-30 23:45:56 25 4
gpt4 key购买 nike

我有一个大小为几 G 的文件,每行包含一个 JSON 散列。该文档本身不是有效的 JSON 文档,但是我无法控制此数据的生成,因此我无法更改它。

需要读取 JSON,需要对 JSON 中的某些“字段”执行查找,然后需要将这些查找的结果插入到 MySQL 数据库中。

目前,处理这个文件需要几个小时,我认为这是因为我在每一行上插入和提交而不是使用 executemany,但是我正在努力找出如何最好地解决这个问题,因为我需要在流程中进行查找,然后插入到多个表中。

有效的流程如下:

1) 遍历文件,边走边读每一行

2)对于每一行,判断是否需要插入到数据库中

3) 如果该行确实需要插入数据库,则查找各种JSON字段的外键并用FK id替换它们

4) 将"new"行插入数据库。

问题出在 (3),因为在某些情况下,FK id 是通过插入数据子集创建的。

简而言之,我需要对嵌套数据结构进行大量插入,其中需要将嵌套数据的各个部分插入到不同的表中,同时保持参照完整性。

感谢所有的帮助,

马特

最佳答案

  • 1) 过滤掉您可以忽略的行。
  • 2) 计算出您的表依赖关系图并将行按表划分为多个文件。
  • 3) 插入没有依赖关系的表的所有行; (可选)缓存这些,这样您就不必向数据库询问您刚刚告诉它的内容以进行查找。
  • N) 使用该缓存 + 执行插入依赖于步骤 N-1 中插入的行的行所需的任何数据库查找。

将所有这些作为多个过程进行,以便您可以验证每个阶段。使用批量插入并考虑禁用 FK 验证。

关于python - 使用 Python 和 MySQL 通过中间查找大量插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com