> 您为啥要两两配对执行?为了缓存某个 content 的所有 tag ?但现查也只要 10ms 那您为什么要去套个缓存?说不定您的缓存比 10ms 还慢
> 而且为了获知所有 content-tag 关系(而不是需要哪个 content/tag 就去现查)您也只需要去掉 WHERE 子句直接`SELECT * FROM content_tag_rel`,所以哪来的两两配对?
可能是我脑子出问题了。不知道为什么会说错。也可能是我写的时候脑子里想的是另外一种计算所有内容两两之间的相似度的方法吧。其实用我上面的 SQL 执行一次就能获得某个 content 的按某种相似度排序的所有的 content ,所以用不着 content 两两之间计算相似度,对所有 content 执行一遍那个带 IN 的语句就行了。感觉这个错误实在是太神奇了。想不到什么避免的方法。
我之前想说的是每个月都在所有的 content 上都运行一次那个带 IN 的语句。说得还是不明确,我一步一步说吧。
SELECT *
FROM tag_content_rel
WHERE content_id = 1;
把获得的结果填入那条带 IN 的语句的 IN 的部分并执行和保存结果。
SELECT *
FROM tag_content_rel
WHERE content_id = 2;
把获得的结果填入那条带 IN 的语句的 IN 的部分并执行和保存结果。
其实两条语句应该是可以合成一条。我之前可能是怕缓存获得不太具有预测性的执行时间把,毕竟有时候搜索的 tag 可能不是某个 content 相关联的。
> 其实阁下就是陷入了
https://xyproblem.info 之中:
很有启发性,刷新我的认知了。已保存到我的笔记里。不过我好像偶尔还是能意识到这个问题的,因为我问问题的时候偶尔会带上自己的目的。另外我也是对自己的目的有点不想公开。不过这些基本都是借口,以后我会多注意的。
> 与此同时隔壁某主题帖
/t/909154 中一大堆阴阳怪气的杠精和低级红高级黑反串都没人管,却要封我一个纯路人?
常在河边走,哪能不湿鞋。可能是我感觉错了吧,我感觉站长处罚人好像有一定随意性和随机性的,还有有时候 @他他才会管。希望别被站长看到。不过尽量还是别 @他,之前好像见过某人因为经常 @他结果被处罚了。另外 V2EX 的处罚不只是封号,还有降权。谁知道还有什么隐藏处罚。