mysql 取資料的問題。

WBOY
發布: 2016-09-03 00:14:12
原創
1081 人瀏覽過

  1. 我現在有一張表,沒有主鍵,只有一個聯合唯一 (date,user_id,count_name, )
    表格記錄範例: date:20160808 user_id:556 count_name: a1

  2. date表示日期,user_id 表示使用者的id , count_name 表示某一個統計值。

  3. count_name 可取值 (a1,a2,a3,···,a12,b1,b2,b3,···,b12);

  4. 每天產生的記錄有幾萬筆。

  5. 資料庫每次取出記錄上限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次資料庫,可以達到結果,但效率不高。

請問有沒有方法可以一次取出想要的數據呢? (這是一個比較老的資料庫,資料量比較大,修改資料庫什麼的做最後的考慮哈!)

嘗試過的方法:

  1. 分頁統計的話,由於表格沒有主鍵,分頁不好處理。

  2. 一次性取出數據在處理,受制於mysql一次只能取出1萬條左右的數據,再多可能就崩潰了。

回覆內容:

  1. 我現在有一張表,沒有主鍵,只有一個聯合唯一 (date,user_id,count_name, )
    表格記錄範例: date:20160808 user_id:556 count_name: a1

  2. date表示日期,user_id 表示使用者的id , count_name 表示某一個統計值。

  3. count_name 可取值 (a1,a2,a3,···,a12,b1,b2,b3,···,b12);

  4. 每天產生的記錄有幾萬筆。

  5. 資料庫每次取出記錄上限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次資料庫,可以達到結果,但效率不高。

請問有沒有方法可以一次取出想要的數據呢? (這是一個比較老的資料庫,資料量比較大,修改資料庫什麼的做最後的考慮哈!)

嘗試過的方法:

  1. 分頁統計的話,由於表格沒有主鍵,分頁不好處理。

  2. 一次性取出數據在處理,受制於mysql一次只能取出1萬條左右的數據,再多可能就崩潰了。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!