簡體   English   中英

MySQL優化:更多條目而不是復雜查詢

[英]MySQL optimization: more entries vs complex queries

我想提高通知板的速度。 它從event表中檢索數據。 此時, events MySQL表如下所示

id | event_type | who_added_id | date

event表中,我存儲了一行有關特定事件的信息。 每次用戶A請求新的通知時,查詢都會遍歷該表,並查看用戶B添加的通知是否適合他(他們必須是朋友,同一組的成員,以前已經聊天過)。 events變得很大,因為查詢量大,頁面加載速度慢。 我正在考慮完全更改此設計,而不是添加一個事件行,然后比較該用戶的事件是否適合,而是添加與感興趣的用戶一樣多的行。 我將更改表events結構如下:

id | event_type | who_added_id | forwho_id | date

現在,如果用戶B創建了一個使其他50個成員感興趣的事件,那么我將創建50個具有相同信息的行,並在“ forwho_id”字段中提及必須獲得此通知的那50個成員。 我認為查詢將變得更加簡單,並且將花費更少的時間進行搜索。 您如何看待:1.這是存儲此類數據的好方法,還是我們不惜一切代價避免重復數據? 2.如果感興趣的用戶數不是50,而是數百,您如何看待events表?

感謝您閱讀本文,希望我能理解自己。

重復的數據不是“壞的”,也不是“不惜一切代價避免”。

“壞”是不受控制的冗余,以及當邏輯數據模型不是第三范式時出現的問題。 可以接受並期望實現會偏離邏輯數據模型,並引入冗余以提高性能。

修改后的設計看起來很適合您的需求。

暫無
暫無

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

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