該功能的工作方式如下:什麼是每天收到電子郵件通知的「保存搜索」功能的最佳數據結構?
- 網站具有用戶和用戶之間可以有任意數量的搜索 保存(如喬布斯在紐約,PHP就業等)。有很多參數 參與,所以這是幾乎不可能的索引(我正在使用MySQL)。
- 每天都有大量新職位發佈到網站
- 我們每24小時會發布過去24小時內發佈的工作,並將其與現有工作搜索進行匹配,然後通過電子郵件向用戶發送有關匹配工作的電子郵件。
這裏的問題在於它是一個高流量的網站,即使是樂觀的案例(發佈的新職位很少),運行此搜索查詢需要10分鐘。這個問題有沒有經典的解決方案?我們一直在使用獅身人面像搜索密集的地方,但我不能在這裏應用它,因爲獅身人面像不會返回所有結果,它會最終切斷它們。現在,我可以做的最好的事情是擁有search.matched_job_ids列,然後在發佈任務時,將其與所有現有搜索進行匹配,並在匹配搜索的matched_job_ids列中記錄作業ID。在這一天結束時,我們將通過電子郵件向用戶發送並截斷列。這在技術上不會提供任何性能改進,但通過執行許多較小的搜索查詢而不是一個大的查詢來隨時間推移負載。有沒有更好的方法?