我正在开发一个pagerank checker小部件。我想缓存排名。因为在每个页面上发送一个请求谷歌需要花费很多秒。
一般问题: 缓存(存储,保存!)数据库中每个网址的排名(并在之后得到它)更快,优化程序还是文件? (1个文件全部,或每个文件1个)
对不起我糟糕的英语由于
答案 0 :(得分:1)
使用数据库,并记住为您关心的列启用索引。
答案 1 :(得分:1)
如何使用memcached之类的东西将数据存储在内存中?如果它只是缓存,我看不到缺点。
答案 2 :(得分:1)
这取决于。
请阅读Chris Davis的this article - 特别是第7.10节。您还应该考虑speed and scalability之间的差异。
虽然从理论上讲,基于文件的方法(使用索引的目录层次结构和每个文件一个URL)会更快,但PHP没有良好的工具来管理并发文件访问。 OTOH这是DBMS的关键特性(无论是关系还是nosql)。另一个考虑因素是你将如何与数据交互 - 您可能无法使用与存储它相同的索引路径来检索它(您仍然可以使用文件实现多个索引,但它更容易在数据库中)。
答案 3 :(得分:0)
使用文件比使用数据库慢... 由于数据库使用多种优化和最佳算法来存储和检索数据,因此最好选择.. 您可以为数据库提供索引,并且可以选择数据库引擎(如果使用mysql)作为MEMORY(HEAP)存储引擎以获得更快的性能。
答案 4 :(得分:0)
缓存结果更好。使用mamchached或类似的东西。您只需要首先检查是否有数据,如果是,则不要向API发送请求并从中获取数据。但是为缓存设置时间(之后缓存将被销毁)。这有助于您将数据与实时同步。如果您没有缓存数据,则将请求发送到api并将最新数据存储到缓存中。在我看来它更好。