Php 评级查询结构与过程经济

Php 评级查询结构与过程经济,php,mysql,Php,Mysql,我试图在我的站点前面显示整体评分,虽然我的站点和数据库现在很小,但我认为当这个表变大时,这个查询和过程可能会使事情陷入困境 现在,我使用的评分很简单,因为我的查询是:查找此ID的所有记录,提取所有评分并平均 我现在要做的是一个查询,它说:查找所有记录,而不考虑ID,按ID排序,平均每个记录的任何现有“评级”,将评级与相关ID保持在某个位置,然后在前10个记录处设置截止值 现实世界中的这个中间区域就像“草稿纸”,我不知道如何处理这个中间地带。好吧,我知道,但是所有那些我想要的十个结果之外的剩余结果

我试图在我的站点前面显示整体评分,虽然我的站点和数据库现在很小,但我认为当这个表变大时,这个查询和过程可能会使事情陷入困境

现在,我使用的评分很简单,因为我的查询是:查找此ID的所有记录,提取所有评分并平均

我现在要做的是一个查询,它说:查找所有记录,而不考虑ID,按ID排序,平均每个记录的任何现有“评级”,将评级与相关ID保持在某个位置,然后在前10个记录处设置截止值

现实世界中的这个中间区域就像“草稿纸”,我不知道如何处理这个中间地带。好吧,我知道,但是所有那些我想要的十个结果之外的剩余结果似乎都是一个浪费的过程

我不知道。。我记得有一次有个人在谈论memcache之类的东西。这就是我要找的“便笺簿”吗

谢谢,
Rob

Memcached当然可以用于此。它是一种基于内存(如此快速)的存储和存储数据的方法,并且得到了广泛的应用

由于是基于ram的,如果系统重新启动,它不会持久化,因此最常见的做法是将其与关系数据库一起使用,以存储生成成本相对较高的数据/结构,这样可以节省不断地重新创建它们的时间—当然,正如您所建议的那样,缓存复杂数据库查询的结果是一种常用方法

Memcached作为服务在服务器上运行。为了让PHP能够访问它,您需要安装pecl memcache扩展。在代码中,实例化其memcache类,然后使用set()和get()方法在已知键下保存和加载数据。它将自动序列化/反序列化对象,因此您可以设置和获取本机php/对象/数组等

旁白:我同意你所说的,由于要搅动的数据量太大,平均值和概览往往很慢。但在这成为一个问题之前,我会谨慎地对其进行过多的优化-在这成为一个问题之前,您可能会改变其他事情,这意味着您不再需要解决这个问题,或者您可能永远不会有足够的用户/数据来解决这个问题,而且通常情况下,您认为对性能影响最大的不是这些事情,在你有问题之前你无法知道


我认为你最好先花时间建立流量/用户等

谢谢你,本。我相信人们可能有十亿种方法来解决这个问题。我会像你建议的那样收拾残局。谢谢