混世魔王英文站研究 之 优化wordpress mysql 的执行效率

网站访问速度,也是影响GOOGLE 排名的一种因素之一。GOOGLE 还提供了 page speed 来检测代码。
混世魔王的英文站研究,一般都是用WP的程序。
但是,WP毕竟是BLOG,数据库达到几万片文章后,就特别慢。
有的时候,为了页面多被GOOGLE 收录。就采用用随机参数。
混世魔王英文站研究 之 优化wordpress mysql 的执行效率。
例如,这一段分类随机的代码。在只有几百篇的文章下是执行正常的。
[/code]
<?php
$rand_posts = get_posts(“cat=” . the_category_ID(0) . “&orderby=rand&showposts=10″);
foreach( $rand_posts as $post ) :
?>
<li><h3><a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>”><?php the_title(); ?></a></h3></li>
<?php endforeach; ?>
[/code]
在几万片文章下,服务器直接 time out.
 
因为之前的随机是在几万篇文章中随机的,
我们加入一个随机值,看看下面的代码。
[code]
 <?php
 $t1=microtime(true);
$rd=mt_rand(0,1000);
$myposts=get_posts(‘numberposts=100&offset=’.$rd.’&category=’.the_category_ID(0));
foreach($myposts as $post) :
echo microtime(true)-$t1.”<br>”;
setup_postdata($post);
 ?>
    <li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>
 <?php endforeach; ?>
[/code]
网站能显示了。但是 MYSQL 的数据库查询值在 8 秒。

继续,优化。
[code]
<?php
$t1=microtime(true);
$rand_posts = $wpdb->get_results(“SELECT id,post_title FROM $wpdb->posts WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM $wpdb->posts))) ORDER BY id LIMIT 0,200″);
echo microtime(true)-$t1.”<br>”;
foreach($rand_posts as $post ){?>
<li><a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>”><?php the_title(); ?></a>
</li>
 <?php } ?>
[/code]

可以看到,上万的文章,随机输出200篇,查询 0.02 秒。
执行效率得到大幅度提升。
<?php
$t1=microtime(true);
$wpcount = $wpdb->get_var($wpdb->prepare(“SELECT count(*) FROM $wpdb->posts WHERE post_type = ‘post’ AND post_status  = ‘publish’”));
 
$randid = mt_rand(0,$wpcount-12);
$myposts = $wpdb->get_results(“SELECT id,post_title FROM $wpdb->posts WHERE post_type = ‘post’ AND post_status  =’publish’ and id>$randid limit 12″);
echo microtime(true)-$t1.”<br>”;
foreach($myposts as $post){
 ?>
<li><a href=”<?php echo get_permalink($post->id); ?>” title=”<?php echo $post->post_title; ?>”><?php echo $post->post_title; ?></a></li>
 <?php
}?>

没有评论:

发表评论

Follow Us

FOLLOW US

Blog Archive

Comments

Blogger 提供支持.

Search This Blog

Tags

header ads