php - 对我在用 PHP 运行的 Web 服务器中缓冲数据有什么建议吗?

标签 php mysql buffer

我考虑了很久。

我想我不能使用所有需要在我的远程 Linux 服务器上安装一些东西的 API/PHP 扩展(例如 memcache、APC、Xcache),因为我的 Web 主机服务器是共享服务器,我只能做就是把文件/脚本放在httpdocs文件夹下。

有什么建议可以让我以编程方式使用缓存和访问内存吗?

其实我的目的是找一个“地方”来保存一些数据,比进入DB取数据访问速度更快,同时也减少DB的负担。 这意味着,如果有人可以提供任何其他有效的建议,则不是必须使用内存。例如使用文本文件会是一个不错的选择吗?(其实我只是猜测)

我的PHP版本是5.2.17。我正在使用 MySQL 数据库。

希望有人能给我建议

最佳答案

平面文件永远是最简单的缓存方式,但它比直接从内存中访问数据要慢。您可以使用存储在内存中的 MySQL 表。您需要将表使用的引擎更改为内存。请注意,只有当您的数据库与 Web 服务器位于同一台服务器上时,这才有效。

建立一个内存表,有两列键和值。变量名将是一个键,其内容是值。如果您需要缓存数组,则对象会在存储数据之前序列化数据。

如果您需要限制内存表的大小,请再添加一列 hitCount。对于每个读取,将计数增加一个。插入新行时,检查最大行数,如果达到限制,则删除 hitCount 最低的行。

要检查哪个更快(文件缓存或内存缓存),请使用以下代码

<?php 
function getTime() 
{ 
    $a = explode (' ',microtime()); 
    return(double) $a[0] + $a[1]; 
} 
?>

<?php 
    $Start = getTime();
    //Data fetching tasks comes here
    $end = getTime(); 
    echo "time taken = ".number_format(($End - $Start),2)."seconds";
?>

如果可能,让我们知道它的效率如何......谢谢

关于php - 对我在用 PHP 运行的 Web 服务器中缓冲数据有什么建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543951/

相关文章:

javascript - 如何使用 jquery 在动态添加的行表单中设置值?

java - 解析数据时出错 org.json.JSONException : type java. lang.String 无法转换为 JSONObject

php - MySQL:从最新行的列中检索值

php - 如何找到最佳的发货仓库位置?

mysql - 如何将数组列表分配给特定数据?

mysql - 查询 MySQL InnoDB 以查找记录是否在其缓冲池中

c - 使用库函数 fopen() 打开文件时,与文件关联的缓冲区的大小是多少?

C# TCP 服务器不可靠,丢弃过时的缓冲消息

php - 使用 "If"语句的 mysql 查询搜索

mysql - 使用 Capistrano 运行 mySql 命令