gpt4 book ai didi

php - MySQL 和 PHP - 多行或连接成 1 行 - 哪个更快?

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

当为一个用户(每个用户可能有 1000 个 friend )存储关系数据时,为每个关系创建一个新行,或者将他们所有的 friend 连接成一个字符串,然后再解析它会更快吗?

Primary id  | Friend1ID  |   Friend2ID|

           1|         234|        5789|
2| 5789| 234|

其中 ID 是对“用户”表中主要 ID 的引用。

或者对于“Users”表只有一个名为 friends 的列,可能如下所示:

Primary id  |           Friend1ID  |

         234|         5789.123.8474|       
5789| 234|

我的理解是字符串连接和解析通常很慢,所以我很想倾向于第一种方法。然而,随着用户数量的增长,这就变成了选择一行并对其进行解析 V 在数百万行中搜索与 WHERE 条件匹配的行的情况。

一种方法明显比另一种快吗?特别是随着用户数量的增长。

最佳答案

您应该使用第二个表来存储 friend 。

Users Table
----------
userid | username
1 | Bob
2 | Mike
3 | John

Users Friends Table
--------------------
userid | friend_id
1 | 2
3 | 2

在这里你可以看到Mike和Bob和John都是 friend ....这当然是一个很简单的演示。

您的第二个选项不会扩展,有些人可能有数十万个 friend ,将每个 Id 存储在一个字段中会导致进一步的头痛。添加好友,删除好友。解决人与人之间的复杂关系。很多开销。

在正确索引的表上使用 WHERE 子句查询数百万条记录应该不会超过一秒钟,第一个选项更好。

关于php - MySQL 和 PHP - 多行或连接成 1 行 - 哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20908581/

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