基于 PHP 文件的缓存与直接从 MySQL 或 MariaDB 等数据库读取

标签 php mysql codeigniter caching io

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

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

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

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

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

我兴奋得忘乎所以了,结果我的网络应用程序现在变成了一个缓存场,这对速度来说是好是坏?我需要在这个主题上有更多经验的人的建议。

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

  • 保存($键,$值)
  • 获取($key)
  • 删除($key)或删除($key,$value)
  • 元数据($key)

谢谢。

最佳答案

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

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

关于基于 PHP 文件的缓存与直接从 MySQL 或 MariaDB 等数据库读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248942/

相关文章:

php - 无法下载文件 Symfony 3.4 和 VueJS

php - 无法清除错误从类型 '(_, _, _) throws -> ()' 的抛出函数到非抛出函数类型的无效转换

mysql - 如何向该查询添加附加条件(使用 CASE)?

arrays - 使用 CodeIgniter 2.0 上传多个文件(数组)

php - 在 Codeigniter 中连接 3 个表没有结果

php - Codeigniter 创建准备好的语句或使用事件记录通过 concat 进行搜索

php - 在PHP中计算邮政编码之间的距离

php - 为什么点击标签<a>后,页面刷新并且appendTo不起作用?

php - 如何根据URL显示内容

java - 如何在 java swing 的 jtable 中显示 groupby 数据?