簡體   English   中英

php每個主題最后只有100條評論

[英]php every topic last only 100 comments

我處理的情況是,我允許每個主題只有100條持續評論

如果一個話題已經有100條評論,而我要發表一個新評論,我想刪除100條評論鏈中的第一個評論並添加新評論,下面是一個示例:

1,2,3 .... 99,100

2,3,4 .... 100,101

如您所見,第一個評論遠遠落后於其他評論,而新評論進入了100條評論鏈

這開始了問題,如果我的案例論壇中有這個主題,並且這個論壇有成千上萬的主題,它可以到達數以百萬計的評論,這意味着如果我檢查每個新收到的評論中有多少評論,它將導致網站速度變慢每添加一條注釋,我如何才能最小化數據庫查詢? 是否有任何系統/已知方式來面對這種事情?

為什么要刪除舊評論? 如果要顯示最后100條注釋,則只需SELECT id, thread_id, user_id, comment_body from COMMENTS where thread_id = @thread_id LIMIT 100 另外,請確保對外部列進行索引,以便快速查詢它並僅查詢所需的列。

不,如果您要明智地使用查詢,請在需要的地方應用索引,然后您就不必擔心每個注釋都會降低數據庫的速度。 您將有數億條評論嗎? 如果是這樣,您可以考慮基於thread_id對數據庫進行分區,例如每1000000 *個線程。

您可能對此問題感興趣: 每天有數百萬個新行的數據庫體系結構


*對於閱讀內容的任何人:不要以經驗為依據不以這個數字為參考。 永遠不要說:“ SO上有人提到了這個數字x,所以...”我沒有經驗或基准可以說用這個數字來做會很好。 我只是自己創建第一個分區。 評估自己對自己有什么好處。

這東西的數據庫結構是什么? 大概您有一個“ posts”表和一個“ comments”表,這些表鏈接回到posts表。 假設設計得體,注釋將具有一個auto_increment主鍵,因此您的邏輯將是:

1. insert new comment
2. count the comments attached to the post. If it's > 100, then
3. find min(comments.id) and delete that ID.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM