fender0107401 发表于 2013-04-26 08:40

对于PHP来说,如果一个数组里面有2万个整数,那么会不会体积很大啊?

本帖最后由 fender0107401 于 2013-04-26 08:43 编辑

我打算将每次从SQL里面查询处理的结果存在PHP的数组里面。

查询有点复杂,需要若干个条件,所以可能每一个查询就生成一个竖数组来存储一个record_id

比如说:

满足第一个查询条件的结果存在array_01里面,大概就是有5000条记录,当然全都是整数的id。

满足第二个查询条件的结果存在array_02里面,大概就是有8000条记录,当然全都是整数的id。

然后我使用array_intersec来得到所有的满足两个查询条件的交集。

这样做会不会很慢啊,不知道array_intersec是怎么实现的,实际当中这样做会不会有什么问题。

a-plus 发表于 2013-04-26 09:10

2w算不上大

fender0107401 发表于 2013-04-26 10:59

我对脚本语言的计算能力总是有点怀疑。

nbrr 发表于 2013-04-26 16:19

什么数据库阿,oracle本身就支持intersect了
如果数据库不支持intersect的话试试这个
假设你要取得t1.id跟t2.id,然后intersect
select distinct id from t1 where id in (select id from t2);

fender0107401 发表于 2013-04-26 17:22

回复 4# nbrr

mysql

不打算用你说的那个方法,因为我可能需要若干个查询条件,用子查询似乎不怎么灵活。


   

yyxxzz 发表于 2013-04-27 12:00

ini_set('memory_limit', 足够的大)
不然使用内存太多,php会挂

hbeimf 发表于 2013-04-27 18:17

没试过,,就看看,

witer666 发表于 2013-05-03 12:53

小心内存溢出

HonestQiao 发表于 2013-05-05 23:24

php -n -r '$ary=array();for($i=0;$i<20000;$i++){$ary[] = rand(0,PHP_INT_MAX);}print_r($ary);printf("\nmax memory used: %0.2fM\n",memory_get_peak_usage()/1024/1024);'max memory used: 4.70M

fender0107401 发表于 2013-05-06 08:20

回复 9# HonestQiao

:mrgreen:


   
页: [1] 2
查看完整版本: 对于PHP来说,如果一个数组里面有2万个整数,那么会不会体积很大啊?