我一直在努力獲取RSS源設置和一些人在這裏幫我完成了。但是,我真的需要一些更有經驗的編程人員的建議,告訴我需要更改哪些內容才能保持相同的功能,但會加快頁面加載速度。如何加快PHP腳本與巨大的MySQL數據庫
它看起來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()限制30太慢了? – Popnoodles
我測試了幾次,每次都超過5分鐘,一般超過10分鐘。由於它是一個RSS提要,顯然它需要加載速度更快,我只是無法弄清楚如何優化它,以便從數據庫中獲得更快的信息。 – user1850695