如何加快此查询?

Zal*_*oza 1 php mysql database-design

我有代码从数据库生成四辆汽车及其照片:

$l=$database->query("SELECT car,brand,exactprice FROM $table ORDER BY rand() LIMIT 4");
$buffer="";
foreach($l as $l){
    $buffer.="<li><h3>{$l['car']}</h3><p>Price {$l['exactprice']}</p>";
    $k=$database->query("SELECT logo FROM logo WHERE brand='{$l['brand']}'");
    $buffer.="<img src='{$base_addr}/{$k[0]['logo']}'><br>";
}
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码.我可以重写我的MySQL命令,所以我会logo从logo第一个选择中获得吗?

目前加载此页面需要4.32秒.

Jas*_*ary 5

您没有提供什么$table,但无论哪种方式,您都可以JOIN在品牌列上使用a (假设此列是适当的外键).

SELECT $table.car, $table.brand, $table.exactprice, logo.logo
FROM $table JOIN logo ON $table.brand = logo.brand
ORDER BY rand() LIMIT 4
Run Code Online (Sandbox Code Playgroud)

就性能而言,您可以考虑在频繁使用的列上创建索引,并通过EXPLAIN在上面的查询前添加基准测试.

一些参考检查: