mysql - php下查询数据相关性的设计
程序员文章站
2022-05-10 13:48:36
...
问题如:把看过A电影的用户同时看过的其它所有电影按照每部电影的点击率取出前10条。
这问题好如jd下的“买过aaa的人还买过产品cc...”。
这问题好如jd下的“买过aaa的人还买过产品cc...”。
目前准备用php+mysql来弄,但感觉这不是php能干的,求大牛指导!
回复内容:
问题如:把看过A电影的用户同时看过的其它所有电影按照每部电影的点击率取出前10条。
这问题好如jd下的“买过aaa的人还买过产品cc...”。
目前准备用php+mysql来弄,但感觉这不是php能干的,求大牛指导!
应该说,这不是mysql能干的。
也许你以为group by
+order by
能干这事,但终究你会发现其实干不了。
PS. 从IMDB上可知,截止目前,共有2877662部电影,5899065名演职员,观影人数没有准确数字,不过怎么说也有很多亿,想象下你的数据库里会放多少条记录,再想想一下当你在几个表之间JOIN的时候,数据库会累成什么样子……
PPS. 给你些参考资料
http://zh.wikipedia.org/wiki/%E5%8D%94%E5%90%8C%E9%81%8E%E6%BF%BE
http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/
其实这个可以不用实时统计,在后台处理所有的逻辑,如果没从都是前台请求然后去算,任何语言都会有问题
这个问题跟语言和数据库都没有关系,因为你不能实时查询,只能是寻找合适的时机,缓存相关的统计数据
推荐阅读