gpt4 book ai didi

php - 搜索页面加载速度极慢(MySQL 和 PHP)

转载 作者:可可西里 更新时间:2023-11-01 07:47:49 25 4
gpt4 key购买 nike

我使用 PHP 在页面上制作了一个简单的搜索框,用户可以在其中键入关键字来查找某些项目的照片。我正在使用 MySQL 数据库。我修剪结果并仅显示 10 以使加载更快,但某些关键字集导致浏览器在 IE 和 Firefox 上挂起。当这种情况发生在 IE 上时,我可以看到超过 10 个结果的照片轮廓(只是剪影),右上角有一个“X”标记,类似于当您加载照片但网页上不存在照片时,即使我编写的代码只显示 10 个结果。该数据库有超过 10,000 个条目,我想它可能正在尝试显示数据库中的整组照片。这是我正在使用的一些代码。

我正在使用下面的函数来创建查询。 $keyword 是用户输入的关键字数组。

function create_multiword_query($keywords) {
// Creates multi-word text search query
$q = 'SELECT * FROM catalog WHERE ';
$num = 0;
foreach($keywords as $val) { // Multi-word search
$num++;
if ($num == 1) {
$q = $q . "name LIKE '%$val%'"; }
else {
$q = $q . " AND name LIKE '%$val%'";}
}
$q = $q . ' ORDER BY name';
return $q;
//$q = "SELECT * FROM catalog WHERE name LIKE \"%$trimmed%\" ORDER BY name";
}

并显示结果。 MAX_DISPLAY_NUM 为 10。

$num = 0;
while (($row = mysqli_fetch_assoc($r)) && ($num < MAX_DISPLAY_NUM)) { // add max search result!
$num++;
print_images($row['img_url'], '/_', '.jpg'); // just prints photos
}

我是 PHP 的新手,但我似乎找不到我的代码有任何问题。也许我编写这些算法的方式不太适合 PHP 或 MySQL?你们能帮我解决这个问题吗?我可以根据需要发布更多代码。 TIA!!

最佳答案

不要在 PHP 中限制您的搜索结果,在使用 LIMIT 关键字的 SQL 查询中限制它们。

如:

select * form yourtable where ... order by ... limit 10;

顺便说一句,那些 LIKE '%something%' 可能很昂贵。也许你应该看看 Full text indexing and searching .

如果你想显示一个 More... 链接或类似的东西,一种方法是将你的查询 limit 为 11 并且只显示前十名。

关于php - 搜索页面加载速度极慢(MySQL 和 PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6513285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com