【发布时间】:2012-11-25 06:27:14
【问题描述】:
我一直在努力设置 RSS 提要,并在这里的一些人的帮助下完成了它。但是,我确实需要一些更有经验的编码人员的建议,向我展示需要更改哪些内容才能保持相同的功能但加快页面加载速度。
它查看 30 个 RSS 项目并从我的 MySQL 数据库中获取 URL。问题是它从该表的 1 亿多行中随机选择 30 行。那是它应该做的,但是由于表格中有这么多行,这真的减慢了脚本的速度,我需要帮助!
<?php header("Content-type: text/xml"); ?>
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?>
<?php include('directory/database.php'); ?>
<rss version="2.0">
<channel>
<title>Website Reviews</title>
<link>http://www.mywebsite.com</link>
<description>Professional Services</description>
<pubDate><?echo date('Y/m/d H:i:s');?></pubDate>
<?php
foreach( range( 1, 30 ) as $i ):
$number = mt_rand( 1, 141754641 );
$query="SELECT * FROM `list` LIMIT $number , 1";
$result = mysql_query($query);
if($result == false)
{
user_error("Query failed: " . mysql_error() . "<br />\n$query");
}
elseif(mysql_num_rows($result) == 0)
{
echo "<p>Sorry, we're updating this section of our website right now!</p>\n";
}
else
{
while($query_row = mysql_fetch_assoc($result))
{
foreach($query_row as $key => $domain)
{
echo "$value";
}
}
}
?>
<item>
<title><?php echo $domain; ?> REVIEW</title>
<pubDate><?echo date('Y/m/d H:i:s');?></pubDate>
<link>http://www.mywebsite.com/review/<?php echo $domain; ?></link>
<description>Looking for a review on <?php echo $domain; ?>? We've got it!</description>
</item>
<?php endforeach; ?>
</channel>
</rss>
提前感谢任何人都可以提供的任何帮助!
【问题讨论】:
-
查询执行需要多长时间?
-
我猜选择 ORDER BY RAND() LIMIT 30 太慢了?
-
我测试了几次,每次都超过5分钟,不过一般都超过10分钟。由于它是一个 RSS 提要,显然它需要更快地加载,我只是不知道如何优化它以便更快地从数据库中获取信息。
-
我试过
ORDER BY RAND() LIMIT 30,但似乎也没有加快速度:/ -
@popnoodles:
ORDER BY RAND()是一个非常糟糕的主意。见alternatives toORDER BY RAND()。
标签: php mysql xml performance rss