SQL 統計表 b 對應表a個數,並賦值給表a的一個字段

最近遇到這麼個問題

  • 表a : 歌單表 music_list
  • 表b : 歌曲詳情表 music_detail

一個歌單對應多個歌曲詳情,但在表的設計時,沒有考慮到在 music_list 設置一個字段標記對應的 music_detail數據條數。在數據已經入庫了之後,同事修改了功能需求。通過測試發現,如果每次使用的時候纔在sql中統計歌單music_list 對應的歌曲詳情music_detail 查詢時間居然高達11秒。這顯然是我們絕對不能接受的。

由於我們的數據量很大,第一次入庫花了大約6個小時。修改入庫代碼顯然也很麻煩。那麼我就想能不能直接寫一個SQL語句直接統計出結果呢。

實測以下SQL可行

UPDATE music_list l SET l.music_count = (SELECT COUNT(*) FROM music_detail m WHERE l.id = m.music_list_id); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章