午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

mysql - 對單表大量數據進行報表匯總有什么高效的方法

瀏覽:206日期:2022-06-18 18:37:55

問題描述

我有一個表記錄了系統中所有功能的使用日志,精確到秒,我們簡稱為秒表。現在有需求是,分別制作對應的功能使用次數匯總,年,月,日,3個維度的報表。這個秒表1個月大概會增加400W條數據。

我的做法是,每一個月手動執行一次匯總方法。1.先把秒表匯總出日表2.再從日表匯總出月表3.再從月表匯總出年表4.然后刪除秒表的數據,只保留最近7天的

這個方案有幾個弊端,1.就是第一步,從秒表匯總出日表的時候,由于數據量太大,一個groupby一般都要卡很長時間,有時候還會假死。2.就是第四步,為了避免第一步數據量太大,所以才在匯總后刪除用過的數據。但是這樣刪除之后,就等于丟失了實時數據。

所以。。。想問問大神們平時是怎么處理這些情況的,有什么更好的方案?

問題解答

回答1:

1、你的第一步可以按照小時groupby 這樣時間不會太長2、可以將秒表分表處理,即1周一個表,或者1天一個表,這樣也可以解決這些問題。

回答2:

把第一步“先把秒表匯總出日表”分散到每天執行前一天的數據,寫個腳本,crontab定時每天執行一次。另外這種log型的數據,可以試試mongodb

回答3:

數據產生時就已經做好報表數據的路過。把數據扔給elasticsearch試試速度。400w的數據而已,對mysql還是小意思的。另外,我推薦PostgreSQL

回答4:

梳理sql,減少慢查詢。通過多次查詢來組合數據優化數據結構,操作+時間應該是一個索引(或者是時間+操作)。其實簡而言之就是減少復雜sql,盡量通過其他方法去彌補。

回答5:

大體是幾個思路:1、將每月匯總的工作,分解到每一天,這樣出月度最終結果的時間會比較短。2、為避免秒表的數據一直增大,可以考慮按照月度進行表分區,每月將上個月的數據移動到另外一個歷史表,保持秒表的大小可控。另外一種方法是每月的數據進入結構相同、名稱不同的表,從方案上就規避了秒表過大的問題。

相關文章:
主站蜘蛛池模板: 欧美日韩18 | 涩五月婷婷| 91热视频 | 国产又爽又黄免费视频 | 开心激情婷婷 | 三级国产在线 | 黄色网页免费看 | 日韩av中文 | 国产精品一区在线 | 中文字幕88| 久久国产综合 | 欧美一级黄色片子 | 校园春色亚洲色图 | 高清视频一区二区 | 成人国产在线视频 | 日韩欧美久久久 | 韩国演艺圈悲惨事件在线 | 亚洲高清免费视频 | 欧美性一区二区三区 | 亚洲国产午夜 | a天堂中文字幕 | 91伊人| 久久免费小视频 | 久久aⅴ国产欧美74aaa | 污视频网站在线 | 黄色福利| 日韩一区二区在线播放 | 日本黄网站色大片免费观看 | 久久xxxx | 亚洲精品黄色 | 国产精品久久久久久亚洲毛片 | 欧美黄色一区二区 | 亚洲天堂网在线观看 | 一级做a爰片久久毛片潮喷 亚洲欧美一区二区三区久久 | 青青草手机在线视频 | 手机看av片 | 国产一区二区三区在线视频 | 91视频导航 | 欧美一区二区三区婷婷 | 日韩av片在线免费观看 | 国产在线第二页 |