我正在建设一个新闻网站,用php写的。网站上的页面具有需要自动更新的内容,具体取决于网站上的某些信息。我的想法是创建一个包含所有这些信息的.txt文件,这样我就可以通过php访问它并修改网站上的页面。当用户加载站点时,PHP脚本运行并将整个文件读取为字符串,将其拆分两次,然后与此字符串一起工作。但是,可能的问题是,这个.txt文件可能真的很大(比如10mb),并且有很多流量,每次用户加载页面时读取这么大的文件可能不是一个好主意,所以我可能需要更快更好的文件。可能的解决方案是mysql数据库,但它会有很大的不同吗?另外,有没有一些使用PHP优化网站性能的技巧?
注意:下面是读取文件的脚本:
<?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元素,它将使用该文件中的信息进行更新:
<?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>发布于 2015-10-22 00:18:13
如果您有10MB的数据需要用于每个页面,我建议将这些数据放在RAM中,而不是从任何基于磁盘的数据源加载它。虽然MySQL可能会将数据缓存到内存中,但是从MySQL中检索和格式化数据要比将处理后的数据保存在PHP中要慢。
有关如何共享内存的信息,请参见Reading and writing global variables across scripts in PHP
发布于 2015-10-22 00:21:58
我觉得使用数据库存储和检索数据的情况已经出现了。文本文件只能做到这一点--可能只对非常非常小的任务有用。我建议您阅读一本书或在线查找一个很好的教程,以了解如何在您的PHP应用程序中正确使用MySQL。MySQL是免费的,但根据您的需要,您可能需要将其托管在某个在线位置。
一旦你学会了基础知识,你就可以使用各种策略来加速你的查询。例如,您可以使用单个查询下拉出比所需多得多的内容,然后使用PHP对结果进行排序。对数据库服务器的调用往往比CPU周期花费更多的时间。
https://stackoverflow.com/questions/33264208
复制相似问题