gpt4 book ai didi

php - 结果发布缓慢 - 没有其他问题,问题出在哪里?

转载 作者:行者123 更新时间:2023-11-29 09:07:32 25 4
gpt4 key购买 nike

我使用 PHP 和 MySQL 来管理我的服务器/网站上的内容(我有一个视频网站)。
最近,任何页面的结果开始变得非常慢,与任何其他网站不同。
服务器的CPU和内存在0-5%,所以开销不是问题。
我所做的是查询数据库中的条目,然后显示它们以及它们的缩略图/分数和其他信息。
发生的情况是,当我打开结果页面时,它不会立即获得所有结果,它们会一一相加。
这正常吗?当然不是......为了更好地理解:发生的情况是标题加载,然后内容(链接到其他页面的许多缩略图)开始加载,但像这样:出现前 3 个拇指,然后出现下 4 个,然后是接下来 2,然后 4,然后...直到最后,我的页面底部终于加载,这意味着联系链接和服务条款。

你有什么想法吗?

我提到我的服务器具有良好的硬件条件、强大的 CPU 和大量 RAM,这些都至少使用了 %,并且还提到我的服务器的 ping 约为 40 毫秒(我住在中欧,服务器是在芝加哥)

我的数据库包含大约 10,000 个条目,每个页面显示 24 个条目,每个条目都由这个 php 脚本处理:

while($arr=mysql_fetch_array($result)){
?>
<div class="thumb" align="center">
<?php
echo "<a href='videos/".$arr['title'].".php'>";
?>
<img src="thumbs/<?php
$title=basename($arr['address']);
$title=substr($title,0,strlen($title)-4);
echo $title;
?>_5.jpg" onMouseOver="startThumbSlide('<?php echo $title; ?>', '5', 'thumbs/<?php echo $title.'_'; ?>')" onMouseOut='stopThumbSlide();' id='pic_<?php echo $title; ?>' width="200px" height="150px"/>
<br />
<div align="left">
<?php
rating_form($arr['address']);
echo '</div>';
echo "</a>";
echo "<a href='videos/".$arr['title'].".php' class=\"thumba\" onMouseOver=\"startThumbSlide('".$title."', '5', 'thumbs/".$title.'_'."')\" onMouseOut='stopThumbSlide();'>".$arr['title']."</a><br>
<span style=\"font: normal 10px verdana; color:#999;\">Viewed: ".$arr['views']." times</span>".'
<span style="float:right; font: normal 10px verdana; color:#999;">'.$arr['lenght'].'</span> </center>'."
</div>";}

提前一百万次感谢您给我的任何建议!干杯!

PS:我必须补充一点,流量没有改变,实际上两周前网站工作得更好,当时我的流量是现在的两倍,并且我的服务器上没有任何设置更改,只是轻微的脚本更改,但我不记得当这种情况开始发生时我到底改变了什么......

编辑:这是我用来从数据库获取数据的MySQL查询,包括搜索字符串操作,搜索字符串变量是$s,这段代码是在我剥离标签并修剪它之后出现的。
这是代码:

$pattern='/[^a-zA-Z0-9]+/';
$s=preg_replace($pattern,' ',$s);
$query="SELECT
*,
CASE when title like '%".$s."%' then 1 else 0 END as titlematch,
CASE when tags like '%".$s."%' then 1 else 0 END as tagsmatch,
MATCH (title, tags) AGAINST ('*".$s."*' IN BOOLEAN MODE) AS relevance
FROM videos
WHERE
(title like '%".$s."%' OR
tags like '%".$s."%' OR
MATCH (title, tags) AGAINST ('*".$s."*' IN BOOLEAN MODE))
AND page=1
ORDER by
titlematch desc, tagsmatch desc, relevance desc
";

$all = mysql_query($query);

$total = mysql_num_rows($all);
if($total>0){
$n1=$start-1;

$result = mysql_query($query. " LIMIT $n1,$max");

while($arr=mysql_fetch_array($result)){
[...This part is already posted...]

另外,我想补充一点,我目前有 2 个索引,一个用于索引字段,一个全文用于标题和标签字段。

最佳答案

简单的回答是,诊断此类问题可能非常困难。但有一些工具可能会阐明这个问题,并引导您关注更具体的领域。

首先,我从基本的互联网速度测试开始,例如:http://www.speedtest.net/验证其他人的页面实际上加载速度很快。

然后,为了好玩,让您所在国家/地区以外的人尝试加载您的网站,看看他们是否也很慢。您可以通过外部代理加载您的网站来亲自尝试此操作。我建议这一切,因为众所周知,那些控制管道的人会限制使用大量带宽的事物,例如视频网站。

虽然听起来好像是 HTML 加载缓慢,而不一定是服务器处理速度,但检查数据库速度不会有什么坏处。我会使用像 phpMyAdmin 这样的工具,并运行 SQL 查询,然后查看结果是否快速返回。如果速度很慢,可能是 SQL 查询编写效率低下,或者某些数据库设置需要调整。只需在 Google 上搜索“mySQL 突然变得非常慢”,就会出现许多帖子,只需更新到最新版本的 mySQL 即可解决这些问题。

这些就是我目前的所有想法。如果您有任何发现,请告诉我。

关于php - 结果发布缓慢 - 没有其他问题,问题出在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6637867/

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