MySQL查询未插入所有记录(使用PHP)

MySQL查询未插入所有记录(使用PHP),php,mysql,Php,Mysql,我正试图将大量数据插入MySQL。这是一个来自提供商的数据转储,大约有47500条记录。现在,我只是通过一个PHP脚本来测试insert方法,只是为了实现拨号功能 我看到的是,首先,插入将在PHP脚本完成后很长时间内继续发生。因此,当我看到浏览器不再有一个X来取消请求,现在有一个重新加载指示脚本已从浏览器的角度完成时,我可以看到长达10多分钟的插入仍在发生。我假设这是MySQL缓存查询。在所有查询完成之前,有没有办法让脚本保持活动状态?我在脚本上加了15分钟的超时 第二,更令人不安的是,我不会得

我正试图将大量数据插入MySQL。这是一个来自提供商的数据转储,大约有47500条记录。现在,我只是通过一个PHP脚本来测试insert方法,只是为了实现拨号功能

我看到的是,首先,插入将在PHP脚本完成后很长时间内继续发生。因此,当我看到浏览器不再有一个X来取消请求,现在有一个重新加载指示脚本已从浏览器的角度完成时,我可以看到长达10多分钟的插入仍在发生。我假设这是MySQL缓存查询。在所有查询完成之前,有没有办法让脚本保持活动状态?我在脚本上加了15分钟的超时

第二,更令人不安的是,我不会得到每一个插入。在47500条记录中,我将获得28000条到38000条记录,但不会更多——每次运行脚本时,这个数字都是随机的。对此我能做些什么

最后,在调试脚本的末尾,我有两个简单的echo语句,它们从不触发-这让我相信可能会发生超时,尽管我没有收到任何关于超时或内存中断的错误。我认为这与问题有关,但我不确定

我尝试将我的表更改为存档表,但这不仅没有帮助,而且还意味着我失去了在需要时更新表中记录的能力,我这样做只是为了测试

现在insert是在一个简单的循环中,它循环我从源代码获得的JSON数据中的每个记录,并运行insert语句,然后进入下一个迭代。我是否应该尝试使用循环来构建一个大规模的insert,并在最后运行一个insert语句?我担心这会超出主机提供商硬编码的max_允许的_数据包配置


因此,我想真正的问题是,根据我在这里解释的内容,使用PHP将近50000条记录插入MySQL的最佳方法是什么。

请同时发布您的代码和表结构。我可以用PHP轻松地在1-2秒内插入100.000多条记录,但在我看不到您的代码之前,我真的帮不上忙。请检查您的超时和内存限制设置。我通过批量插入解决了这个问题。我做了一些计算,发现即使在一个insert语句中只插入10000条记录,所花费的时间也要少得多,数据量也不到1MB,这似乎就是诀窍。感谢您抽出时间回答!!!