首頁  >  問答  >  主體

mysql分表之后怎么查询

表结构包含id,week,hot,按周切成7张表,每张表代表一周的第几天,week代表第几周,怎么查询第n周hot排名前十的记录?

迷茫迷茫2743 天前781

全部回覆(5)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 14:51:20

    分錶的分法,是要避免跨表操作。讓業務的操作在一個表格中完成。
    如果要跨表,表示分法是不合理的。

    如果真的有些業務場景要跨表,考慮多種分法同時存在,做副本冗餘。

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:51:20

    根據week的來定位到具體的表,說白了就是生成sql語句的時候指定具體的表,和mysql沒什麼關係。

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:51:20

    拼接sql語句問題,表命名要有規律,取得當前週,拼接,前10hot用order by和top 10或limit 0,10關鍵字完成

    回覆
    0
  • PHPz

    PHPz2017-04-17 14:51:20

    我個人是不喜歡把邏輯放到mysql中的,所以按照你的分錶方法,只能從七張表中取出每個表的top10以後,在應用程式裡面再比較了。另外,我建議你依照月份水準分錶,這樣能夠支援更多的業務需求。你這種分錶方式更像是取模分錶,天然不支援時間段內查詢與排序。

    回覆
    0
  • 黄舟

    黄舟2017-04-17 14:51:20

    這種分錶只能每張表都取前10,然後再程式碼裡排序,這個分錶規則有問題,有這種場景的要做資料冗餘

    回覆
    0
  • 取消回覆