我不习惯处理这么大的物体(呵呵)。我有一个查询,它通过 mysql 查询运行在我的所有子域中:
$blogs = $wpdb->get_results(
"SELECT blog_id,path FROM {$wpdb->blogs}
WHERE blog_id != {$wpdb->blogid}
AND site_id = '{$wpdb->siteid}'
AND spam = '0'
AND deleted = '0'
AND archived = '0'
order by blog_id", ARRAY_A
);
然后我对它们运行一个 foreach 以获取一些数据(特别是博客名称)
foreach( $blogs as $blog ) :
switch_to_blog( $blog[ 'blog_id' ] );
if(strpos(strtolower($blog_details->blogname), strtolower($_GET['squery'])) !== false){
//Show the site's title and link to the site
}
endforeach;
我这样做是因为我需要用户能够通过其名称来搜索站点,而该站点在$wpdb->blogs
表中不可用。URL 是,但 url 可能是 smsalem”,但用户会搜索“Service Master”之类的内容,甚至只是“Service”。
我将内存限制提高到 256mb(是不是太高了?或者我可以再高一点吗?)因为我遇到了内存耗尽的错误。
现在它完成得很好,我回应了内存使用情况并得到了201043248 , 201mb。我的初始$blogs
数组中有大约 1,400 个项目。
这“有效”,但我担心每次有人使用该页面时 201mb 非常高(我们有一个专用服务器),我想知道是否有办法对此进行优化,或者这些数字是否足够低而不必担心大约(我们可能会在未来一两年内查看 5k+ 个站点)