Php 如何从10k记录的mysql数据库中快速检索数据
我有一个页面,其中我必须显示数据库中的所有记录,但刷新时需要花费很多时间。 html部分加载速度很快,但当光标到达我的mysql查询时,加载会花费很多时间。。 这是我的问题Php 如何从10k记录的mysql数据库中快速检索数据,php,mysql,Php,Mysql,我有一个页面,其中我必须显示数据库中的所有记录,但刷新时需要花费很多时间。 html部分加载速度很快,但当光标到达我的mysql查询时,加载会花费很多时间。。 这是我的问题 $srchresult = mysql_query("SELECT `date`,`chalno`,`custcode`,`vessel`,`rankcode`,`crew`,`ppno`,`cdcno` FROM `$maindb` WHERE `series`='$zseries' Order By `date`, `c
$srchresult = mysql_query("SELECT `date`,`chalno`,`custcode`,`vessel`,`rankcode`,`crew`,`ppno`,`cdcno` FROM `$maindb` WHERE `series`='$zseries' Order By `date`, `chalno` desc")or die(mysql_error());
while ($row = mysql_fetch_array($srchresult)) {
$mdate = strtotime("d-m-Y", $row[date]);
echo "<tr>";
echo "<td align='left'>$mdate</td>";
echo "<td align='left'>$row[chalno]</td>";
echo "<td align='left'>$row[custcode]</td>";
echo "<td align='left'>$row[vessel]</td>";
echo "<td align='left'>$row[rankcode]</td>";
echo "<td align='left'>$row[crew]</td>";
echo "<td align='left'>$row[ppno]</td>";
echo "<td align='left'>$row[cdcno]</td>";
echo "<td align='left'><a href=\"$file?mode=edit&$keyfld=$row[$keyfld]&series=$zseries\"><i class='fa fa-pencil' style='font-size:1.3em;color:#00C0EF;cursor:pointer;'></i></a></td>";
echo "</tr>";
}
}
$srchresult=mysql\u查询(`date`、`chalno`、`custcode`、`vessel`、`rankcode`、`crew`、`ppno`、`cdcno`FROM`$maindb`WHERE`series`=`zseries`按`date`排序,`chalno`desc')或die(mysql\u error());
while($row=mysql\u fetch\u数组($srchresult)){
$mdate=strottime(“d-m-Y”,$row[date]);
回声“;
回显“$mdate”;
回声“$row[chalno]”;
回显“$row[custcode]”;
回声“$行[船]”;
回显“$row[rankcode]”;
回声“$行[机组]”;
回显“$row[ppno]”;
回显“$row[cdcno]”;
回声“;
回声“;
}
}
我强烈建议使用分页,以便能够呈现/浏览页面上的10k记录
如果必须在布局中没有可见分页块的情况下执行此操作,请使用无限滚动解决方案。这里有一个相当简单的例子:
您的mysql查询很好,即使您至少应该使用PHP的mysqli扩展()来检索数据。确保您的数据库表上有合理的索引,例如,在
系列上column@MarkBaker我在series和chalno上都有索引,然后对查询进行解释,看看MySQL是如何执行它的,以及它是使用这些索引还是实际使用dataTables以模式显示数据,所以我不认为无限滚动是完美的解决方案。如果我写msqli_查询,它会给我一个错误。mysqli_query()正好需要2个参数,1