首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php优化:从数据库获取

Php优化:从数据库获取
EN

Stack Overflow用户
提问于 2013-07-04 02:09:32
回答 4查看 102关注 0票数 3

我有一些PHP代码,一旦按下下一个箭头,它基本上就会获得数据库中的下一个图像。然而,在我的网站上,我有时可以有超过600名用户在线,所有点击下一步。有没有办法优化这段php代码,让它执行得更快?

谢谢!

代码语言:javascript
复制
$nxtImage = mysql_query ("SELECT * FROM images WHERE active=1 and id>$id and section=$section ORDER BY id ASC LIMIT 1") or die (mysql_error());
$nxtrow = mysql_fetch_array($nxtImage);
$nxtnum = mysql_num_rows($nxtImage);
$nid = $nxtrow['id'];
$npicTitle = $nxtrow['img_title'];
$nimgLink = preg_replace("![^a-z0-9]+!i", "-", $npicTitle);
$nimgLink = strtolower($nimgLink); 
EN

回答 4

Stack Overflow用户

发布于 2013-07-04 02:13:20

我要做的第一件事是将查询更改为:SELECT `id`, `img_title` FROM images ...,以确保您只获取所需的内容。我要做的下一件事是在id, img_title, section, active上构建一个覆盖索引,这样它就不必读取数据页面。

除此之外,获取更多硬件,:D

票数 6
EN

Stack Overflow用户

发布于 2013-07-04 02:15:41

您可以在服务器端一开始获取所有图像一次,然后在Javascript中将其传递给客户端(例如,使用JSON)。

然后,每当有人点击箭头时,你只需在Javascript中加载正确的图像(例如,具有下一个更大的数组索引)。

通过这种方式,您可以消除大量(可能按数量级排序)的数据库查询,从而提高服务器性能。

票数 3
EN

Stack Overflow用户

发布于 2013-07-04 02:31:09

一旦你知道你的用户会经常点击“下一步”,你就可以实现hashtag navigation,在那里JavaScript会被告知接下来10到20个图像的参数,并使用动态内容执行导航,而不需要经常麻烦PHP和MySQL。

此外,MySQL还提供了tunning parameters,您可以在其中增加key_buffer_sizetable_cache的值,以便告诉您的服务器在内存中保留更多的信息,以便更快地搜索和即时响应。

我通常会调优它以使用服务器上大多数未使用的内存,因为未使用的内存是一种浪费的资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17455276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档