首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >站点优化- PHP和内存使用+数据库?

站点优化- PHP和内存使用+数据库?
EN

Stack Overflow用户
提问于 2015-10-22 00:09:52
回答 2查看 95关注 0票数 0

我正在建设一个新闻网站,用php写的。网站上的页面具有需要自动更新的内容,具体取决于网站上的某些信息。我的想法是创建一个包含所有这些信息的.txt文件,这样我就可以通过php访问它并修改网站上的页面。当用户加载站点时,PHP脚本运行并将整个文件读取为字符串,将其拆分两次,然后与此字符串一起工作。但是,可能的问题是,这个.txt文件可能真的很大(比如10mb),并且有很多流量,每次用户加载页面时读取这么大的文件可能不是一个好主意,所以我可能需要更快更好的文件。可能的解决方案是mysql数据库,但它会有很大的不同吗?另外,有没有一些使用PHP优化网站性能的技巧?

注意:下面是读取文件的脚本:

代码语言:javascript
复制
 <?php
$myfile = fopen("postovi.txt", "r") or die("Unable to open file!");
$smejanje = fread($myfile,filesize("postovi.txt"));
$postovi= explode("<novipost>", $smejanje);

$i = 0;
        $duzina = sizeof($postovi);
        while ($i < $duzina) //duzina = broj postova <ucitava sve postove>
        {
            $postovi[$i] = explode("|", $postovi[$i]);
            $i++;       
        }   

fclose($myfile);

下面是html元素,它将使用该文件中的信息进行更新:

代码语言:javascript
复制
<?php $id++; ?>
        <div class="mali-post-h">
        <a href="<?php echo($postovi[$id][0]); ?>" id="<?php echo("mali-post-link-".$id); ?>">  
        <div class="mali-post" style="background-image: url(<?php echo $postovi[$id][3]; ?>);" id="<?php echo("mali-post-".$id); ?>">
        <div class="mali-post-naslov">
        <p id="<?php echo("mali-post-naslov-".$id); ?>" class="customfont"><?php echo $postovi[$id][2]; ?></p>
        <p style="font-size:10px"> <span style="font-weight: 900; font-size:15px; color: #3366FF;"> <?php echo $znak ?>  </span> <?php 
        $time = strtotime($postovi[$id][4]);
        echo ' pre '.humanTiming($time); ?> </p>
        </div>
        </div>
        </a>
        </div>
EN

回答 2

Stack Overflow用户

发布于 2015-10-22 00:18:13

如果您有10MB的数据需要用于每个页面,我建议将这些数据放在RAM中,而不是从任何基于磁盘的数据源加载它。虽然MySQL可能会将数据缓存到内存中,但是从MySQL中检索和格式化数据要比将处理后的数据保存在PHP中要慢。

有关如何共享内存的信息,请参见Reading and writing global variables across scripts in PHP

票数 0
EN

Stack Overflow用户

发布于 2015-10-22 00:21:58

我觉得使用数据库存储和检索数据的情况已经出现了。文本文件只能做到这一点--可能只对非常非常小的任务有用。我建议您阅读一本书或在线查找一个很好的教程,以了解如何在您的PHP应用程序中正确使用MySQL。MySQL是免费的,但根据您的需要,您可能需要将其托管在某个在线位置。

一旦你学会了基础知识,你就可以使用各种策略来加速你的查询。例如,您可以使用单个查询下拉出比所需多得多的内容,然后使用PHP对结果进行排序。对数据库服务器的调用往往比CPU周期花费更多的时间。

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

https://stackoverflow.com/questions/33264208

复制
相关文章

相似问题

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