MySQL中的类似行

时间:2010-12-15 15:23:31

标签: mysql similarity

我正在尝试为一个不动产网站中的给定房产选择十大最相似的房产,我想知道你们是否可以帮助我。我正在使用的变量是price(int),area(int),bathroom(int),bedroom(int),suites(int),parking(int)。目前我正在考虑通过ABS(a-b)进行排序,但如果我每次查看某个房产时都必须计算这个数字,那会不会很慢? (我不确定我可以缓存这个,因为数据库不断更新)还有其他选择吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

一种解决方案可能是创建一个包含结果就绪的新表。像这样: -

property_id    similar_properties_ids
--------------------------------------
1              2,5,8
2              3,10
...
...

一个cron定期运行,计算所有属性并填充similar_properties_ids

因此,在运行时,您没有计算开销,但缺点是您得到的结果有点旧(在上一次cron运行期间更新)。