首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -插入到mysql多行的最佳方法

PHP -插入到mysql多行的最佳方法
EN

Stack Overflow用户
提问于 2013-08-10 15:11:56
回答 2查看 270关注 0票数 0

好的,让我们假设我有3个sql表和一个文本文件。文本文件为CSV格式。文件结构-想象每一行都有一个数组。值0时间戳;页签1,4,7,10值;页签2,5,8,11值;页签3,6,9,12值。将处理后的数据插入到db中的最佳方法是什么?解决方案1.每一行都是"insert into tab ...“,这是我目前使用的,它需要花费很多时间。解决方案2.foreeach行读取将sql语句推入到一个数组中,当我处理完所有行时,生成一个类似"Insert into tab...;“的字符串,然后执行查询。文件有一个aprox。4000行,每个表有7个值。

EN

回答 2

Stack Overflow用户

发布于 2013-08-10 15:24:04

您应该使用批插入,而不是为每个语句执行一条记录。在您的例子中,每个表应该有一条insert语句(除非给定表的记录数超过了一个"mysql包“所能容纳的数目)。

请参阅:How to do a batch insert in MySQL

如果使用批处理插入,则应确保每个批处理插入不超过max_allowed_packet变量。

您可能还会发现索引是您最大的瓶颈。在大型插入之前禁用它们并在重新启用它们可能会有所帮助。请参阅:How to disable index in innodb

最后,MySQL可以应用this technique,以实现高带宽插入。

票数 1
EN

Stack Overflow用户

发布于 2013-08-10 16:29:01

我认为您可以使用MYSQL语法

代码语言:javascript
复制
LOAD DATA INFILE '/path/to/file' INTO TABLE tbl_name

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18159565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档