php foreach 嵌套循环大数组很慢?

就这个循环花了10S,我写的是用php导入excel到mysql数据库,但是要验证code不能重复,原本想用一个foreach循环selecte一个一个的对比,一想到要插... 就这个循环花了10S,

我写的是用php导入excel 到mysql数据库,但是要验证code 不能重复,原本想用一个foreach循环selecte 一个一个的对比,一想到要插入1000条就要seletet 1000次这样写会很慢,结果我就用了上面这个方法 ,先用一条selecte 把数据库的数据全部查出来的到一个数组$gift,然后跟excle上传过来的数据 嵌套循环对比 ,一运行发现很慢 单嵌套循环就花了10s,我又改用第一种方法,结果才花了5S ,还快了一半。我是想问大神们,你们遇到这样的问题都是怎么处理的,有没有更好的方法?我觉得写程序这样事情经常会有
展开
 我来答
幸巴达
2014-05-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2471万
展开全部
双层循环啊, 数量是 $gift * $fi的个数。 百万级别的。
简单的就是将excel中的数据导入的数据库中(可以是另外一个表),将验证码字段建索引。然后再排查重复的,纯sql就很快了。
追问
在本地测是很快几乎可以忽略,但是到服务器就不一样了,我要导入1000条就要sql 1000次,这样总感觉有问题
追答
在数据库中建立索引后就很快了,不会真的执行1000次。
用卡迪尔积是效率最差的。

还有一个慢的原因可能是打开并读取excel慢。
一名路过的小码农
2014-05-09 · 超过29用户采纳过TA的回答
知道答主
回答量:257
采纳率:0%
帮助的人:63.7万
展开全部
没懂你问的意思
追问
意识就是我要用phpexcel 导入数据到数据库,导入之前还要判断导入的数据不能跟数库的数据重复 ,有重复就不插入,重复的要返回给用户
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式