iT邦幫忙

0

想問問一個數據功能,推薦的寫法會是如何?(PHP, MariaDB)

有個數據功能
可以切換過去每一天日期去看那天是多少
假設為「每日瀏覽網站的次數好了」(鎖定IP)

我的做法是會有一個A數據表紀錄同IP、同頁面則不紀錄
也就是說當我要撈資料出來時一定是跑這個A數據表
只是這樣的做法我先前做過的網站(約四百萬筆瀏覽數據)這樣好像不是很好?
每次顯示都要跑過這四百萬筆數據就是了(有 index)

第二個我想到的做法是:會再多一個B數據表
假設在A數據表找不到這個紀錄
則在B數據表那邊就不會+1
撈資料時就是撈B數據表(雖然好像一個樣?)

A數據表的欄位會有:AUTO_INCREMENT、IP、頁面路徑、日期
B數據表的欄位會有:int數字、日期、(可能再來個綁定A的關聯性?)

數據是要串圖表的(哪個作法串圖表會輕鬆?)
想問問大家的做法
謝謝~~

看更多先前的討論...收起先前的討論...
ckp6250 iT邦好手 1 級 ‧ 2019-08-18 20:44:00 檢舉
怎麼做比較好?
要先問,您的 Select 指令通常都怎麼下的?
slime iT邦大師 1 級 ‧ 2019-08-18 22:19:41 檢舉
先問....這樣的數據要應用在哪?
火爆浪子 iT邦研究生 1 級 ‧ 2019-08-18 23:02:16 檢舉
網站的紀錄而已~
sseapig iT邦新手 5 級 ‧ 2019-08-19 04:07:24 檢舉
如果是要每天的登入加總數量。
可以試看看把每天的登入人數加總寫到B table,一天只有一筆總數紀錄, 要跑圖表的時候只要抓B Table的數量。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
sseapig
iT邦新手 5 級 ‧ 2019-08-19 04:09:37
最佳解答

如果是要每天的登入加總數量。

可以試看看把每天的登入人數加總寫到B table,一天只有一筆總數紀錄, 要跑圖表的時候只要抓B Table的數量。

火爆浪子 iT邦研究生 1 級 ‧ 2019-08-19 11:55:45 檢舉

也就是說A資料表只是紀錄有沒有重複

sseapig iT邦新手 5 級 ‧ 2019-08-19 14:50:47 檢舉

A table只是流水帳,不是統計資料。

0

一般這樣的處理會分詳細記錄跟統計記錄來處理。
統計記錄要依情況來決定基數多少。

這邊的基數是看要一天、一個星期、一個月、或是一個小時。
視你的應用來決定。
如你的查看記錄是依日為單位的情況下。那就用基數一日為一筆的統計來計算。

其實像這樣的瀏覽記數,400萬筆是真的不算什麼。
依照我的最高記錄曾經有過上千萬筆過的。

但因為配合了統計的因素。所以實際在後台看到的數量並非是直接讀取千萬筆的表統計的。
所以影響不大。

我要發表回答

立即登入回答