在PHP中处理MySQL数组中的数百万条记录?
我正在开发一个广告管理系统,最近,我们在一个高流量网站上启动了一些测试我将每个印象作为记录存储在数据库中,并带有时间戳、广告ID、区域ID和网站ID 我会选择日期范围内的所有数据,并使用PHP来组织记录(按天等)。这是低效的,所以我提出了两个问题在PHP中处理MySQL数组中的数百万条记录?,php,mysql,arrays,Php,Mysql,Arrays,我正在开发一个广告管理系统,最近,我们在一个高流量网站上启动了一些测试我将每个印象作为记录存储在数据库中,并带有时间戳、广告ID、区域ID和网站ID 我会选择日期范围内的所有数据,并使用PHP来组织记录(按天等)。这是低效的,所以我提出了两个问题 GROUP BY date(`impressions`.timestamp) 第一个查询检索印象的计数,第二个查询获取相关标签的列表 我的问题是: 我需要通过查询不仅获得总体印象,还需要按区域和日期获得印象,我不能使用PHP来组织这个数据数组,因为它
GROUP BY date(`impressions`.timestamp)
第一个查询检索印象的计数
,第二个查询获取相关标签的列表
我的问题是:
我需要通过查询不仅获得总体印象,还需要按区域和日期获得印象,我不能使用PHP来组织这个数据数组,因为它有数百万个点
SELECT `zones`.name as zoneName, `impressions`.*
from `impressions`, `zones`
WHERE `impressions`.website_id = "14"
AND `zones`.website_id="14"
AND `zones`.zone_id=`impressions`.zone_id
AND `impressions`.timestamp
BETWEEN "2012-10-08 00:00:00" AND "2012-10-15 23:59:59"
ORDER BY `impressions`.timestamp ASC
这可能会返回数百万条记录。然后我使用PHP将返回的数据排序到区域中
例如,这是PHP排序后的结果数组。此数组表示区域以及它们在给定日期内收到的印象。在处理大型阵列时,使用什么查询可以尽可能接近这一点,以最小化内存开销
Array
(
[labels] => Array
(
[Oct 8th] => "Oct 8th"
[Oct 9th] => "Oct 9th"
[Oct 10th] => "Oct 10th"
)
[final] => Array
(
[0] => Array
(
[name] => Blog Skyscraper
[data] => Array
(
[0] => 449
[1] => 499
[2] => 558
)
)
[1] => Array
(
[name] => Latest News Right
[data] => Array
(
[0] => 805
[1] => 809
[2] => 760
)
)
[2] => Array
(
[name] => Photos Right
[data] => Array
(
[0] => 788
[1] => 786
[2] => 743
)
)
[3] => Array
(
[name] => Banner Zone
[data] => Array
(
[0] => 793
[1] => 796
[2] => 747
)
)
[4] => Array
(
[name] => Mini Right Bottom
[data] => Array
(
[0] => 784
[1] => 778
[2] => 742
)
)
[5] => Array
(
[name] => Mini Right Top
[data] => Array
(
[0] => 790
[1] => 787
[2] => 743
)
)
)
)
发布查询中的
解释。为什么要在数百万个数组中循环?为什么不使用分组方式
、排序等。。。要获得最终数组?您应该使用更复杂的MySQL查询,而不是在PHP中使用大型数组……您想对这些数据做什么?要求是什么?