【问题标题】:PHP File Based Caching vs reading direct from DB like MySQL or MariaDB基于 PHP 文件的缓存与直接从数据库(如 MySQL 或 MariaDB)读取
【发布时间】:2014-10-04 14:46:52
【问题描述】:

我是计算机专业的学生,​​我是一名使用 PHP 的 Web 开发人员。我开发了一个 Web 应用程序,它有很多 SQL 查询,这些查询可能会发送到数据库服务器 +-20 次,以在每次页面加载时查询相同的信息。

出于这个原因。我决定通过扩展 codeIgiter 缓存库来使用我自己的自定义基于文件的缓存,该缓存库由于依赖 URL/URI 而无法使用。我基本上去掉了 URL/URI 依赖项并使用 SHA-256 作为访问密钥。我使用默认的 CodeIgniter 加密库将所有缓存数据存储为加密数据,只是为了增加额外的安全性,以防有人打开缓存文件,我不想存储纯文本数据。

  • 缓存数据的加密是否昂贵/服务器上的资源很重?

  • 基于文件的缓存是否比 Mysql/MariaDB/PostGres 更快?

基于文件的缓存非常适合我最大限度地减少数据库查询,但这真的可以提高我的 Web 应用程序的速度吗?与 DB 相比,这能有多快?

我兴奋不已,结果我的 Web 应用程序现在变成了一个缓存农场,这对速度来说是好是坏?我需要对此主题有更多经验的人的建议。

我的基于自定义文件的缓存具有以下基本功能:

  • 保存($key,$value)
  • get($key)
  • 删除($key) 或删除($key,$value)
  • 元数据($key)

谢谢。

【问题讨论】:

  • 如果没有比您提供的更多详细信息,没有合适的方法来回答这个问题。唯一可能的答案是“使用数据库和你自己的缓存对你的东西进行基准测试,看看什么更快”
  • 请问您希望我解释什么,我试图说清楚,但显然我失败了:)
  • ——你指出了一些重要的事情。我将使用 CI 内置的基准测试对此进行测试,如果您知道更好的工具,请分享。
  • MySQL with memcached怎么样?
  • 我尝试过使用 memcached。对结果非常不满意。我一点也不相信。根本没有改善慢。

标签: php mysql codeigniter caching io


【解决方案1】:

您可以使用 memcached 或 redish 进行缓存,这将减少对数据库的查询次数并提高网站的速度。

除了检查查询并优化它们。

【讨论】:

  • 请看我对 VMai 的回复,你认为我需要多尝试一下 memcached 吗?我在 Sles box 上安装了 memcached,我们在工作中用于生产。对此非常不满意。如果查询未优化,是否也会导致内存缓存速度变慢? (虽然不这么认为,但我的经验较少)。我对redish没有经验(从未尝试过)
  • 我刚看了redis.io,我最初的印象是这与我的基于自定义文件的缓存非常相似,只是我只是保持加密。我也使用键值缓存,键是 sha-256 哈希,但我仍在尝试深入研究文档,但感谢分享,在您发表评论之前我不知道 redis.io 存在。 #ThumbsUp 基本上用我的自定义方案,唯一担心的是文件io速度。
  • 哇,这看起来很棒 - github.com/nicolasff/phpredis#usage 我觉得我的大脑刚刚打开了全新的学习领域,这很令人兴奋,但我觉得这会让我的项目放慢速度。我想尽快推出:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多