在我的网站上,我经历了一个相当高的服务器加载时间,我正在考虑一些方法来优化我的mysql查询。
我现在做的是:
首先,我计算表中所有有一定标准的汽车;
如果汽车的数量大于20辆,我用这些条件进行查询;
如果这个数字比较小,我做一个更一般的搜索只是为了在页面上给出一些结果。
有没有更快的方法来做这个?
似乎我正在失去性能,用特定的条件计算行**并再次查询它们以获取数据。

$car_sql = mysql_query("SELECT COUNT(*) FROM ".$table." WHERE carid IS NOT NULL $criteria1 $criteria2 $criteria3");

$car_nr = mysql_result($car_sql, "0");

if($car_nr > 20){
    $result = mysql_query("SELECT carid,pic0 FROM ".$table." WHERE carid IS NOT NULL $criteria1 $criteria2 $criteria3");
} else {
    $result = mysql_query("SELECT carid FROM ".$table." LIMIT 20");
}

有什么想法吗?

最佳答案

您可以合并第一个和第二个查询,因为它们基本相同:

$car_sql = mysql_query("SELECT SQL_CALC_FOUND_ROWS carid,pic0 FROM ".$table." WHERE carid IS NOT NULL $criteria1 $criteria2 $criteria3");

但是您必须测试它是否比第一个单独的查询慢得多。
如果结果数通常大于20,则速度会更快。

关于php - 获取我的mysql数据的更快方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8793481/

10-12 02:22