目前我正在为我的网站使用共享托管域。但是我们目前在其中一个表中大约有11,00,000行。所以它花了很多时间来加载网页。所以我们要实现数据库缓存技术像我们网站的APC或memcache。但是在共享域我们没有那些设施可用,我们只有eaccelerator.But eaccelerator不缓存db调用,如果我没有错。所以考虑所有这些点我们想要移动到VPS和这种情况。我们需要使用APC或memcache来减少页面加载时间的数据库缓存技术...请指导VPS和更好的两种缓存技术
答案 0 :(得分:0)
我们有类似的网站,我们使用APC
APC将缓存操作码以及生成的html。这有助于避免不必要的页面点击
您还应该在mysql上启用缓存以缓存查询结果
答案 1 :(得分:0)
我有一个任务,我需要从数据库表中获取超过100.000条记录的行。它是一个可滚动的页面。所以我所做的是获取前50个记录并在第一次调用中缓存下一个50。在向下滚动事件时,我写了一个ajax请求来检查数据是否在缓存中可用;如果不是我从数据库中取出它并缓存下一个50.它工作得很好,解决了不方便的加载时间。
如果你有类似的情况,你可以从这种方法中受益。
ps:我使用了memcache。
答案 2 :(得分:0)
从您的评论中我认为您正在进行LIKE %..%
查询,并希望对结果进行分页。首先,调查FULLTEXT指数是否适合您,因为它们应该表现更好。如果这不是一个选项,您可以像这样添加一个简单的缓存:
..?search=foobar
,则“foobar”是结果集的ID。保留所有链接,例如..?search=foobar&page=2
。sha1($query)
,或者sha1(strtolower($query))
。serialize
数据并将其存储在文件中。unserialize
获取数据,显示与所请求页面对应的数组部分。if (rand(0, 100) == 1) ..
的内容来执行此操作,这将平均每100次查询运行清理作业。在服务器负载和数据新鲜度之间取得平衡。缓存失效是一本关于BTW可以写的书籍的主题。这是一个简单的穷人的缓存实现。这不是很好,但如果你没有其他任何东西可以使用,那么比一遍又一遍地运行慢查询更好。
答案 3 :(得分:-1)
APC是备用PHP缓存,仅适用于PHP。而Memcahced将使用任何语言独立工作。