表结构包含id,week,hot,按周切成7张表,每张表代表一周的第几天,week代表第几周,怎么查询第n周hot排名前十的记录?
业精于勤,荒于嬉;行成于思,毁于随。
分錶的分法,是要避免跨表操作。讓業務的操作在一個表格中完成。 如果要跨表,表示分法是不合理的。
如果真的有些業務場景要跨表,考慮多種分法同時存在,做副本冗餘。
根據week的來定位到具體的表,說白了就是生成sql語句的時候指定具體的表,和mysql沒什麼關係。
拼接sql語句問題,表命名要有規律,取得當前週,拼接,前10hot用order by和top 10或limit 0,10關鍵字完成
我個人是不喜歡把邏輯放到mysql中的,所以按照你的分錶方法,只能從七張表中取出每個表的top10以後,在應用程式裡面再比較了。另外,我建議你依照月份水準分錶,這樣能夠支援更多的業務需求。你這種分錶方式更像是取模分錶,天然不支援時間段內查詢與排序。
這種分錶只能每張表都取前10,然後再程式碼裡排序,這個分錶規則有問題,有這種場景的要做資料冗餘
分錶的分法,是要避免跨表操作。讓業務的操作在一個表格中完成。
如果要跨表,表示分法是不合理的。
如果真的有些業務場景要跨表,考慮多種分法同時存在,做副本冗餘。
根據week的來定位到具體的表,說白了就是生成sql語句的時候指定具體的表,和mysql沒什麼關係。
拼接sql語句問題,表命名要有規律,取得當前週,拼接,前10hot用order by和top 10或limit 0,10關鍵字完成
我個人是不喜歡把邏輯放到mysql中的,所以按照你的分錶方法,只能從七張表中取出每個表的top10以後,在應用程式裡面再比較了。另外,我建議你依照月份水準分錶,這樣能夠支援更多的業務需求。你這種分錶方式更像是取模分錶,天然不支援時間段內查詢與排序。
這種分錶只能每張表都取前10,然後再程式碼裡排序,這個分錶規則有問題,有這種場景的要做資料冗餘