要得到的意見和他們的收視率可以在一個SQL查詢來完成。當你有很多評論和評級時,它會很慢,但不是你提到的數字。
如果你想更快,您可以創建名爲「評級」或類似的東西的評論的屬性,並對其進行更新每隔一小時(或多久,你覺得就足夠了)左右。它不是確切的,但它將近似評論。但我們正在談論數以百萬計的評論和評級,在這之前,這只是一個問題。
這通常會用物化視圖來完成,但不幸的是在MySQL中沒有實現...您可以通過編寫一個php腳本並通過cronjob運行來使用上述方法。
使用這樣的查詢(未經測試):
SELECT *
FROM comments, ratings
WHERE comments.id = ratings.id_comment;
假設你一個值添加到您的投票(+1或-1),你可以將它們分組,並在這樣一個查詢計算出總的commentrating(未經測試):
SELECT comments.id, comments.user_id, comments.comment,
comments_time, SUM(ratings.value) AS rating
FROM comments, ratings
WHERE comments.id = ratings.id_comment
GROUP BY comments.id;
現在將所有的commentfields和計算commentrating作爲字段rating
。如果您想加速測試,您可以嘗試插入一百萬個虛擬評論和一百萬個評分,並查看查詢需要多長時間。
加快它更可以在comments.id_comment添加索引是這樣的:
CREATE INDEX speedthisthingup ON comments(id_comment);
這將有助於執行了大量時間:)
祝你好運!