本帖最后由 hknovo 于 2013-7-15 14:43 编辑
网站访问速度,也是影响GOOGLE 排名的一种因素之一。GOOGLE 还提供了 page speed 来检测代码。 混世魔王的英文站研究,一般都是用WP的程序。 但是,WP毕竟是BLOG,数据库达到几万片文章后,就特别慢。 有的时候,为了页面多被GOOGLE 收录。就采用用随机参数。 混世魔王英文站研究 之 优化wordpress mysql 的执行效率。 例如,这一段分类随机的代码。在只有几百篇的文章下是执行正常的。 - <?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; ?>
[color=rgb(51, 102, 153) !important]复制代码
在几万片文章下,服务器直接 time out
因为之前的随机是在几万篇文章中随机的, 我们加入一个随机值,看看下面的代码。 - <font face="Tahoma, Verdana,">
<?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."";setup_postdata($post);?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li><?php endforeach; ?> </font>
[color=rgb(51, 102, 153) !important]复制代码
网站能显示了。但是 MYSQL 的数据库查询值在 8 秒
继续,优化。 - <font face="Tahoma, Verdana,">
<?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."";foreach($rand_posts as $post ){?><li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li><?php } ?> </font>
复制代码
可以看到,上万的文章,随机输出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."
- ";
- 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
- }?>
复制代码麻烦上面扣分的,把我的T币还来,赚两币容易吗? 不加就算了,还给我减了
|