gpt4 book ai didi

mysql - 对我的记录进行分组的最快方法是什么?

转载 作者:行者123 更新时间:2023-12-01 00:51:38 26 4
gpt4 key购买 nike

我的站点显示不同主题的链接集合。这些链接分为两种类型:网页和图像。我的数据库将有数百万(可能超过一千万)这样的记录。当页面加载时,我需要向用户显示该页面特定主题的网络和图像链接。所以第一个问题是:

  1. 我是创建两个单独的、较小的表,一个用于 Web 和图像链接,然后对每个进行查询,还是为两者创建一个大表(具有正确的索引)并进行一个查询.我在哪里可以获得更好的性能?如果一表一查询效率更高,那么我的下一个问题是:

  2. 将这两种类型分割以进行展示的最有效方法是什么?我应该使用 group by 还是应该使用 php 将我的结果数组分成两种类型?

TIA!

最佳答案

您可以对所有对象使用一个表,或者对链接或网站使用一个表,从而获得类似的性能。如果您有两个单独的表,对结果执行 UNION 将返回您需要的所有结果。

划分结果的主要原因是它们是否真的不同(从你的应用角度)。也就是说,如果您最终要使用很多查询,例如

select * from objects where type='image';

那么有两个表可能是有意义的。

那么使用 group by 并不是对不同结果进行分组的一种方式,而是一种聚合它们的方式。

因此,例如,您可以使用

select type, count(*) from objects group by type

得到

| image |  100000 |
| web | 2000000 |

但它不会返回分离的对象。要将它们“分组”,您可以对每个结果使用一个查询,或者使用一个排序,然后在应用程序中使用逻辑来划分结果。

关于mysql - 对我的记录进行分组的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15184672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com