php+mysql批量插入数据问题

ding314127 2009-09-01 03:44:12
我写了一个批量导入数据的代码。
过程是这样的,先读取一个数据表中的数据,然后将其插入到新的表中。
第一次,我先是全部读取,然后一起插入。结果出错,应该是数据量过大。

第二次,我修改了一下代码,先导入前150条,当用户单击“继续”的时候导入下150条,这样反复,发现一般导入450条到600条的时候就会报错。如果导入300条后等几秒后再单击“继续”的时候。导入就会正常。

请问各位大虾,有什么好办法解决这种从一个数据表读取大量数据导入到另一个数据表的方法吗???
...全文
719 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ibd3000 2009-11-22
  • 打赏
  • 举报
回复
学习
学习
linglingnie 2009-09-02
  • 打赏
  • 举报
回复
MySQL 企业版的管理器试试,那个支持大数据量的操作
ding314127 2009-09-01
  • 打赏
  • 举报
回复
另外,6楼能否说一下关于内存管理的经验呀??多谢
ding314127 2009-09-01
  • 打赏
  • 举报
回复
补充几点:
1.我使用的是Codeigniter框架。所以数据库的效率肯定比直接使用mysqli方法低一些。
2.3楼提出的方法不是原因,因为数据插入完成后我就用close()方法把数据库连接关闭掉。
3.1楼和6楼的方案我明天试试看。
谢谢大家。

要是还有方案大家都提出来哈。集思广益一下。
sdomain 2009-09-01
  • 打赏
  • 举报
回复
应该不会有这种情况的,可能你代码没定好,
一般来说把PHP的超时时间设为0
set_time_limit(0);来实现
然后每读取一个,就插入一条,
但在循环的时候,要记得控制内存,
另外如果记录里面有大字段的话,最好是生成SQL文件,然后用source导,
我用循环读取再导入的话最多处理过和万多条记录,也基本没事,一次搞定的。像你几百条就出错,肯定不会的。
chenkun1982 2009-09-01
  • 打赏
  • 举报
回复
学习
YHL27 2009-09-01
  • 打赏
  • 举报
回复
学习!!
LuciferStar 2009-09-01
  • 打赏
  • 举报
回复
连接mysql,执行插入操作后,及时退出。
可能跟mysql连接数有关。
foolbirdflyfirst 2009-09-01
  • 打赏
  • 举报
回复
一般都使用mysql命令行导出,再以mysql命令行导入.(mysqldump,mysqlimport,source...)
或者用phpmyadmin的代码运行导出导入了(碰到大文本要注意php.ini的一些设置,memory_limit,upload_max_filesize..)
阿_布 2009-09-01
  • 打赏
  • 举报
回复
找到php.ini文件中的max_execution_time这一项,把值改大就可以了
估计一下你的数据导完的时间大概是多少,设置相应的值。
前一段时间我就是这样做的,我设置的是30000。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧