我有看似无害的 while 循环,它遍历 mysql 查询的结果集,并将从 mysql 返回的 id 与一个非常大的多维数组中的一个进行比较:
//mysqli query here
while($row = fetch_assoc())
{
if(!in_array($row['id'], $multiDArray['dimensionOne']))
{
//do something
}
}
当脚本第一次执行时,它以大约每秒 2-5k 的速度运行结果。有时更多,很少更少。结果集带回 700 万行,脚本的内存峰值为 2.8GB。
就大数据而言,这不是很多。
问题是,在 600k 左右,循环开始变慢,到了 800k,它每秒处理几条记录。
在服务器负载和内存使用方面,没有问题。
这是我之前在处理大型数据集的其他脚本中注意到的行为。
随着内部指针移动得更深,数组寻道时间是否会逐渐变慢?