数据库
首页 > 数据库> > mysql – 数据库查询比在一台服务器上查找LinkedIn类型第二级连接的算法更快吗?

mysql – 数据库查询比在一台服务器上查找LinkedIn类型第二级连接的算法更快吗?

作者:互联网

我有一个表与朋友id,u1,u2和约<单个mysql服务器上有500,000个条目

我想带上userA和userB并检查他们是否有共同的朋友.

做得快吗?

select u2 from friends where u1 = userA and u2 IN (select u2 from friends where u1 = userB)

而不是在图表上(在一台服务器上)运行最短路径算法?

标准方式是什么,像LinkedIn和Facebook这样的大型网络用来处理这个问题?

谢谢!

解决方法:

如果表朋友被u1和u2索引,则SQL查询将采用2个子集的交集并且非常快.这是因为索引已经完成.如果你在内存中进行计算,时间取决于你是否有预建索引:如果你有,你会因为没有数据库连接开销而更快.如果索引包含在计算时间中,并且数据库已加热(内存中的所有数据),则可能会丢失.

我正在谈论索引,而不是最短路径算法,因为最短路径算法计算的数据超出了你的需要.

标签:algorithm,mysql,graph,graph-theory,graph-algorithm
来源: https://codeday.me/bug/20190529/1181596.html