我有一个页面可以根据类别ID从多个类别中拉出许多标题。更快在MYSQL中查询或使用PHP逻辑
我想知道是否更有意义的是拉出所有的标题,然后通过PHP将它们排序,如果/ ifelse语句或更好地运行多个查询,每个查询包含每个类别的标题。
我有一个页面可以根据类别ID从多个类别中拉出许多标题。更快在MYSQL中查询或使用PHP逻辑
我想知道是否更有意义的是拉出所有的标题,然后通过PHP将它们排序,如果/ ifelse语句或更好地运行多个查询,每个查询包含每个类别的标题。
为什么不在一个查询中做到这一点?类似于:
SELECT headline FROM headlines WHERE category_id IN (1, 2, 3, ...);
如果您使用PHP过滤标题,请考虑您将丢弃多少标题。如果最终只取消10%的头条新闻,那么不会像当你扔掉90%的结果时那么重要。
通常最好不要超载数据库,因为如果您有很多同时查询,则可能会造成瓶颈。
但是,在PHP中处理您的处理通常是,因为Apache会根据需要处理多个请求来分叉线程。
像往常一样,这一切归结为:“有多少流量?
MySQL已经可以为你选择和排序数据了。我建议懒惰,并使用它。
另外,我会寻找(1)查询,一次提取所有类别和标题。 ORDER BY类别,发布日期或其他?
每次去数据库都会花费你一些东西。返回额外的数据,然后你决定忽略花费你的东西。所以你几乎肯定会更好地让数据库进行修剪。
我敢肯定,有人可能会想出一些决定需要哪些数据会使查询非常复杂,因此数据库难以优化的情况,而您可以轻松地在代码中执行该操作。但是如果我们谈论的是“从类别='体育'的故事中选择标题,然后选择”从类别='政治'的故事中选择标题“,然后”从类别='健康'的故事中选择标题“等等, (“健康”,“体育”,“政治”)的类别中的标题,后者显然更好。
什么是您的类别ID的来源?你有分类表吗?你是否获得所有类别和标题,或者只有选定的类别? – CoderDennis 2009-05-18 16:55:20
我还没有决定是否我只是每个标题行都有一个类别字段,或者将它分割为自己的表格。 – Tim 2009-05-18 17:16:43