首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >apache使用哪种缓存技术

apache使用哪种缓存技术
EN

Stack Overflow用户
提问于 2014-09-01 15:21:54
回答 4查看 248关注 0票数 0

目前我正在为我的站点.But使用共享主机域我们目前在一个tables.So中有大约11,000,000行我们需要很多时间来加载webpage.So我们想在共享域中为我们的site.But实现数据库缓存技术,如APC或memcache我们没有这些设施,我们只有eaccelerator.But eaccelerator不缓存db调用,如果我不wrong.So考虑所有这些点我们想要移动到VPS,在这个case.which数据库缓存技术中,我们需要使用APC或memcache来减少VPS上的页面加载time...Please指南和更好的缓存技术。

EN

回答 4

Stack Overflow用户

发布于 2014-09-01 15:36:49

我们有类似的网站,我们使用APC

APC将缓存操作码以及生成的html。这有助于避免对页面进行不必要的点击

您还应在mysql上启用缓存以缓存查询结果

票数 0
EN

Stack Overflow用户

发布于 2014-09-01 17:06:59

我有一个任务,我需要从一个包含超过100.000条记录的数据库表中提取行。这是一个可滚动的页面。因此,我所做的是获取前50条记录,并在第一次调用中缓存下50条记录。在向下滚动事件时,我编写了一个ajax请求来检查数据是否在缓存中可用;如果没有,我从数据库中获取数据,并缓存下50个数据。它工作得很好,并解决了不方便的加载时间。

如果您有类似的场景,您可能会从这种方法中受益。

附言:我使用了memcache。

票数 0
EN

Stack Overflow用户

发布于 2014-09-01 21:20:21

从您的评论中,我认为您正在执行LIKE %..%查询,并希望对结果进行分页。首先,调查全文索引是否适合您,因为它们应该执行得更好。如果这不是一个选项,您可以像这样添加一个简单的缓存:

foobar

  • 将每个唯一的搜索词看作一个id,也就是说,如果你的网址中有..?search=foobar,那么"foobar“就是结果集的id。保持在你的所有链接中,例如..?search=foobar&page=2.

  • If结果集还不存在(见下文),创建它:
  1. 用你的慢查询查询数据库。
  2. 将所有结果放入一个数组中。不要做得太过了,你不会想要在每个查询中存储数百个唯一的文件名,例如megabytes.
  3. Create,或者sha1(strtolower($query)).
  4. serialize数据并将其存储在file.

从文件中获取数据,删除它,显示与请求的page.

  • Occasionally,
  1. 缓存结果相对应的数组部分。您可以使用诸如if (rand(0, 100) == 1) ..之类的工具来做到这一点,它将平均每100个查询运行一次清理作业。在服务器负载和数据更新之间取得平衡。缓存失效是整本书都可以写的话题,顺便说一句。

这是一个简单的穷人的缓存实现。这不是很好,但如果您完全没有其他东西可用,它总比一遍又一遍地运行缓慢的查询要好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25600704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档