我在Scaleway服务器上安装了wordpress 3.8.6(4个X86 64位内核, 4GB内存,200Mbit / s不限流量) Apache / 2.4.18 + PHP 5.6.36 + MySQL Percona服务器5.6.40-84.0
主页上有4355个查询,这是服务器响应缓慢(17.9s)的原因
发出这些请求的函数如下:
<?php
$categories = array(24,121,123,124,127,19,20,91,92,21,22,23,89,29,30,31,38,55,52,65,87,99,120,108,113,119,128,206,159,137,142,139,143,146,147,150,164,153,154,174,175,177,184,186,191,196,198,200,201,204);
$cats = get_terms('catalog');
foreach ($cats as $cat) {
if (in_array($cat->term_id, $categories)) {
$image = get_field('photo', 'catalog_'.$cat->term_id);
$query = new WP_Query(
array ( 'tax_query' => array(
array(
'taxonomy' => 'catalog',
'field' => 'id',
'terms' => $cat->term_id
)
))
);
$minprice=0;
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$fields = get_fields( get_the_ID() );
if ((int)$fields['price'] < $minprice && (int)$fields['price']>0 || $minprice==0) {
$minprice = (int)$fields['price'];
}
}
}
?>
<a class="cat-item" href="<?=get_term_link($cat);?>" title="">
<img src="<?=$image['sizes']['main-category']?>" width="178" height="158" alt="<?=$cat->name?>">
<div class="cat-title" style="bottom: 26px;"><?=$cat->name?></div><div style="text-align:center; margin-top: 10px;">Цена от <?=$minprice?> руб.</div></a>
<?php
}
}
?>
问题! 如何在不更改输出功能的情况下减少服务器的响应? 是否可以建议设置MySQL服务器,以便它可以快速处理这么多请求? 或如何优化此功能的代码? 预先谢谢你!
答案 0 :(得分:0)
有一个名为query-monitor
的插件。您可以通过此插件监视查询。
要减少查询,您可以使用wordpress Transients_API
或者您可以使用W3 Total Cache
之类的任何现金插件