我有一个不断增长的数据库,其中包含:
标准可以是字符串(例如:国家/地区名称),布尔值,数字,......
我想找到所有或多或少匹配的需求报价(有点像招聘银行,配对......)
如果表格不包含很多行,我会计算如下:
但是对于一个重要的数据库来说,这需要花费太多时间,不是吗?
您推荐什么解决方案?
答案 0 :(得分:1)
从2010年6月24日起延长答案 - 在联接表(需求键,优惠键,相关性分数)中捕获预先计算的相关性分数。请注意,此连接表可以包含计数(需求)*计数(优惠)记录;仅存储相关性分数大于某个阈值的记录可能是谨慎的。
这种方法在数据插入上的计算复杂度为O(n)。如果假设要求的特征空间(类似于要约)使得同一要约的具有高相关性得分的两个要求也在“关闭”内,则可以将此复杂性降低到O(log(n))。他们的特征空间,持有:
这将以速度交换特异性。通过将需求样本与每个要约进行比较并对相关性进行排序,验证初始假设的准确性;遍历有序的商品集,并在您找到缺少的商品之前计算您在结果集中找到的数量。对此测试的主观分析将让您了解群集的成本是多少。
答案 1 :(得分:0)
我会按照你描述的方式进行 - 但是使用滚动缓存机制和一些索引。
计算出创作的相关性,然后看看它是如何发展的。如果频率较低(高读,低写),增量增加可能会很好。如果两端都很高,你可以分成两个数据库......在一个数据库上处理更新,然后定期将后处理数据推送到另一个数据库,这是读取的默认来源。