php - 在全动态和重数据库网站中使用memcached好吗?

标签 php mysql caching memcached query-builder

我目前正在从事类似于电子商务网站的项目。数据库表中有数十万条记录。我还必须对它们使用连接操作来获取数据,因为项目中有查询生成器来选择数据标准。获取数据需要太多时间。所以,我使用限制作为每页的一些记录(例如 10)。现在我开始了解memcached的概念。所以我想在我的项目中使用 memcached,因为它只需要花费太多时间。但仍有一些疑问。

  1. 太多缓存文件会影响吗?我的意思是会创建太多文件,每个模块的每一页,都会有一个缓存文件。所以数字将进入大约 10000 个缓存文件
  2. 让我们假设没有任何文件数量的问题。但是,当在表格中间添加或删除表格的任何行时,如何使用 replace() 来更新文件。在这里,几乎每周都会更新表格

所以我进退两难,我是否应该选择 Memcached?如果有人可以提出建议并解释并回答,那么将不胜感激。

最佳答案

如果您的网站执行许多经常返回相同数据的相同 MySQL 查询,那么是的,运行 memcached 可能有一些好处。

问题:

"There are hundreds of thousands of records...It takes too much time to fetch the data".

这可能表明您的架构存在问题。正确索引,即使在使用 JOIN 时,查询也应该能够快速执行(< 0.1 秒)。对运行时间较长的查询运行 EXPLAIN 查询,看看是否可以改进。

问题 1 的答案

缓存文件太多不会有问题。 Memcached 将所有缓存信息存储在内存中(因此得名),因此不使用磁盘文件。缓存的对象存储在 RAM 中并直接从 RAM 访问。

问题 2 的答案

不确定您在这里问什么,但是如果您的应用程序更新或删除数据库中的信息,那么删除受更新和删除影响的缓存项至关重要。如果应用程序不删除受此类操作影响的缓存项,则下次查询数据时,可能会返回不再有效的缓存结果。确保缓存的任何数据都设置了适当的过期时间,或者应用程序在数据库中的数据发生变化时将它们从缓存中删除。

希望对您有所帮助。

关于php - 在全动态和重数据库网站中使用memcached好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852976/

相关文章:

php - PHP 的 SOAP 扩展是否有好的替代方案?

php - javascript php mysql flot 数据库

java - Servlet 过滤器无法正常工作

performance - 如何有效地增加 IIS 7 中应用程序池的内存和缓存大小

caching - 缓存缓存更改会阻止崩溃吗?

c# - UWP 应用程序中的 HttpClient 缓存

php - 试图从我的投票表中获取所有选票的总和,但出现错误

javascript - 如何让服务器在普通 PHP/SQL 网站后面执行任务?

javascript - 如何将 javascript 脚本中的倒数计时器 document.getElementById() 多次写入嵌套在 php for 循环中的 html 段落中?

php - php 5.3 升级到 5.5 后全局 $wpdb wordpress 出现问题,登录时无法工作