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