我收集了来自我的用户的Facebook好友列表,包括First,Last,Gender和DOB。然后我尝试将名称数据库(存储为MySQL中的表)与另一个由类似信息组成的数据库进行比较。
从概念上链接这些结果的最佳方法是什么,第二个数据库是更大的记录集(> 500k行)?
以下是我的建议:
我是否缺少可能比顺序mySQL方法更快的分布式计算概念?还有哪些陷阱可能会出现,并指出没有假阳性而不是错过记录更为重要?
答案 0 :(得分:1)
是的,你的想法似乎是一个更好的算法。
假设您需要考虑性能,可以使用缓存来存储刚搜索的值。您还可以在NoSQL数据库中开始索引结果,以便结果更快,从而获得更好的读取性能。如果您必须使用MySQL,请阅读polyglot persistence。
假设你很关注简单性,你仍然可以在NoSQL数据库中使用索引,所以在你不必进行大量连接的时候会破坏用户和开发人员的体验。
可能会有更多的问题,但这一切都取决于您希望在何处使用它,在网站中使用,或者用于此类数据分析目的。
答案 1 :(得分:1)
如果你想对整个数据集进行操作(而不是某些交互式的东西),这个数据集的大小可能很小,只能悄悄进入内存并从那里开始。使用List挂起数据,然后创建Map>每个唯一的姓氏(通过整数索引)指向列表中存在的所有位置。您还将自己设置为能够执行更复杂的匹配逻辑,而不会试图强迫SQL执行此操作。特别是因为你正在跨越两个不同的物理数据库...