我在单个数据库中有多个表。当我的页面加载时,它从该数据库中的所有表中检索数据。因此,由于不同表中的加载时间不同,我的页面变得越来越慢。我的问题是如何显示已经从表中加载的数据的页面,其余的是在流模式下?我不知道是否有可能与PHP和MySQL?任何想法?
由于
马修
答案 0 :(得分:0)
从不同的表中获取数据没有什么不好。每个网站都这样做 如果您的某些查询变慢,您只需要找出哪一个然后对其进行优化。
您可以使用以下简单代码找出慢速查询: 只需在每次查询执行之前和之后放置这些$ TIMER语句
<?
$TIMER['start']=microtime(TRUE);
// some code
$query="SELECT ...";
$TIMER['before q1']=microtime(TRUE);
$res=mysql_query($query);
$TIMER['after q1']=microtime(TRUE);
while ($row = mysql_fetch_array($res)) {
// some code
}
$TIMER['before q2']=microtime(TRUE);
$res=mysql_query($query);
$TIMER['after q2']=microtime(TRUE);
while ($row = mysql_fetch_array($res)) {
// some code
}
$TIMER['array filled']=microtime(TRUE);
// some code
$TIMER['pagination']=microtime(TRUE);
if ('127.0.0.1' === $_SERVER['REMOTE_ADDR']) { //put your IP addr here
echo "<table border=1><tr><td>name</td><td>so far</td><td>delta</td><td>per cent</td></tr>";
reset($TIMER);
$start=$prev=current($TIMER);
$total=end($TIMER)-$start;
foreach($TIMER as $name => $value) {
$sofar=round($value-$start,3);
$delta=round($value-$prev,3);
$percent=round($delta/$total*100);
echo "<tr><td>$name</td><td>$sofar</td><td>$delta</td><td>$percent</td></tr>";
$prev=$value;
}
echo "</table><>";
}
?>