簡體   English   中英

從大型mySQL數據庫按日期排序/獲取記錄

[英]datewise records sorting /fetching from large mySQL database

對於每天的數據,我有一個單獨的表,基本上是webstats類型的:關鍵字,訪問,持續時間,IP,銷售等(每條記錄總共100字節),每個表大約有幾百萬條記錄。

我需要做的是擁有一個Web管理員,以便該用戶/管理員可以查看不同日期段的報告並按某些計算值進行排序。 例如,用戶可能想要上個月15日至本月12日的結果,並按SALE / VISIT降序排列。

管理員/用戶一次只需要查看(說)前200條記錄,並且在任何一個會話中查看的總數可能都不超過幾百條

由於所涉及的日期是任意的,因此我需要總結每條記錄的相關列,然后才可以進行選擇。

我的問題是,是否有可能實時生成報告或它們太慢(在插入當天的數據后,表很少(如果有的話)進行更新)

這樣的方案是否更好地適合於索引或表掃描?

而且,對於所有日期而言,龐大的表是否比每個日期都有單獨的表(幾乎沒有聯接)更好?

提前致謝!

對於每天的數據有一個單獨的表,一個月的匯總將涉及對30多個表中的每個表進行相同的分析。 一年多來,您將需要對365個左右的表進行分析。 這將是一場噩夢。

擁有完全索引的單個表幾乎比擁有大量表要好得多。 一些DBMS支持分段表-如果MySQL支持,則按日期分段單個大表。 我傾向於按月細分,尤其是如果正常查詢的時間不超過一個月且不跨越月份界限。 (即使涉及兩個月,而且消除了相當大的碎片,查詢引擎也不必讀取大部分數據;兩個月只需要讀取兩個碎片。它甚至可以並行進行這些掃描,甚至- ,具體取決於DBMS。)

有時,對表進行順序掃描比進行索引查找要快-不要簡單地假設因為查詢計划涉及表掃描,所以自動執行效果會很差。

您可能想嘗試其他方法。 我認為Splunk將為您服務。 正是為此而設計的,他們甚至在此網站上做廣告。 他們有一個免費版本,您可以嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM