我現在有一張表,沒有主鍵,只有一個聯合唯一 (date,user_id,count_name, )
表格記錄範例: date:20160808 user_id:556 count_name: a1
date表示日期,user_id 表示使用者的id , count_name 表示某一個統計值。
count_name 可取值 (a1,a2,a3,···,a12,b1,b2,b3,···,b12);
每天產生的記錄有幾萬筆。
資料庫每次取出記錄上限1萬筆。
我現在需要統計12個值。 用mysql語句可以這麼表示:
<code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); ···</code>
這樣取12次資料庫,可以達到結果,但效率不高。
請問有沒有方法可以一次取出想要的數據呢? (這是一個比較老的資料庫,資料量比較大,修改資料庫什麼的做最後的考慮哈!)
嘗試過的方法:
分頁統計的話,由於表格沒有主鍵,分頁不好處理。
一次性取出數據在處理,受制於mysql一次只能取出1萬條左右的數據,再多可能就崩潰了。
我現在有一張表,沒有主鍵,只有一個聯合唯一 (date,user_id,count_name, )
表格記錄範例: date:20160808 user_id:556 count_name: a1
date表示日期,user_id 表示使用者的id , count_name 表示某一個統計值。
count_name 可取值 (a1,a2,a3,···,a12,b1,b2,b3,···,b12);
每天產生的記錄有幾萬筆。
資料庫每次取出記錄上限1萬筆。
我現在需要統計12個值。 用mysql語句可以這麼表示:
<code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); ···</code>
這樣取12次資料庫,可以達到結果,但效率不高。
請問有沒有方法可以一次取出想要的數據呢? (這是一個比較老的資料庫,資料量比較大,修改資料庫什麼的做最後的考慮哈!)
嘗試過的方法:
分頁統計的話,由於表格沒有主鍵,分頁不好處理。
一次性取出數據在處理,受制於mysql一次只能取出1萬條左右的數據,再多可能就崩潰了。