如果用PHP赋值十万个变量数组(比如读取十万条mysql数据来用),做为后台管理脚本来运行会不会太耗系统资
我想肯定会耗资源,一个变量占多少字节十万变量加起就占多少资源。其实我发错问题了。情况是这样的:我需要大量的插入数据,而数据在经过一定的积累后肯定是越积越多,比如积累到了十...
我想肯定会耗资源,一个变量占多少字节十万变量加起就占多少资源。其实我发错问题了。情况是这样的:
我需要大量的插入数据,而数据在经过一定的积累后肯定是越积越多,比如积累到了十万数据。
而进行插入数据的时候,某个字段如标题是唯一的不能重复,所以需要首先查询是否已经存在,(也许可以不用先查询,唯一属性就行?实践中似乎越频繁和越多错误的数据操作越容易损坏?),为了避免过多的数据库操作,我想先一次性读取所有数据,在进行插入数据操作时,直接从已经赋值的变量中判断,这样就能减少许多操作。
我想知道这样做是否必要?或者,我可以把不能重复的所有字段值另外保存到TXT文本中,这样就不需要一次性读取数据库。
这个脚本有两种运行期,一是长期(一直运行到它意外中止或一天以上),二是两分钟内。 展开
我需要大量的插入数据,而数据在经过一定的积累后肯定是越积越多,比如积累到了十万数据。
而进行插入数据的时候,某个字段如标题是唯一的不能重复,所以需要首先查询是否已经存在,(也许可以不用先查询,唯一属性就行?实践中似乎越频繁和越多错误的数据操作越容易损坏?),为了避免过多的数据库操作,我想先一次性读取所有数据,在进行插入数据操作时,直接从已经赋值的变量中判断,这样就能减少许多操作。
我想知道这样做是否必要?或者,我可以把不能重复的所有字段值另外保存到TXT文本中,这样就不需要一次性读取数据库。
这个脚本有两种运行期,一是长期(一直运行到它意外中止或一天以上),二是两分钟内。 展开
2个回答
2011-04-16
展开全部
你说的写文件是个思路。如果你只是要求某一个字段是唯一,可以把这个存在内存中,每次进行验证。然后把验证通过的数据写入文件,最后在统一从文件中读出来存入数据库。
但是又会出现个问题。如果你是10万条数据在文件里,你要是想用一个INSERT插入,那必须得先把这数据读到内存里,肯定也很慢,而且不稳定。如果你逐条读出插入,对数据库也是个消耗。不过你可以把数据拆散,比如每1000条插一次。
但是又会出现个问题。如果你是10万条数据在文件里,你要是想用一个INSERT插入,那必须得先把这数据读到内存里,肯定也很慢,而且不稳定。如果你逐条读出插入,对数据库也是个消耗。不过你可以把数据拆散,比如每1000条插一次。
追问
我试过批量插入,可是只要有一条数据已经存在,就会出错而停止插入。也许有禁止中断的选项?如果有,我就用那个选项i不用考虑其他了
追答
呃,其实MYSQL的SQL语句里有个“ignore”,用法就是“insert ignore into tb(...) value(...) ”,这样的话,遇到重复的值,mysql就不会插入了,而是直接跳过
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询