[英]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.