目前我正在使用mysql來記錄所有用戶進入我管理的網站的所有流量。數據庫在一個月內增長到近1100萬行,查詢速度變得很慢。有沒有更有效的方法來記錄用戶信息?我們所存儲的是他們的請求,useragent和他們的ip,並將其與某個網站相關聯。跟蹤數據庫中所有用戶流量的最有效方式是什麼
1
A
回答
4
爲什麼不嘗試Google Analytics(分析)?即使你認爲這對你來說不足夠,我敢打賭你可以跟蹤99%的你想跟蹤的東西。
2
0
想要在數據上運行哪種查詢?我假設你的大部分查詢都是在當前或最近的時間窗口中的數據。我建議使用基於時間的表格分區。這會使查詢更快,因爲查詢只會觸及具有數據的分區,因此磁盤搜索量減少。還要定期清除舊數據並將其放在彙總表中。一些有用的鏈接:
0
最有效的方式可能是讓Apache(假設多數民衆贊成在該網站上運行的是什麼),只需使用其內置的日誌記錄文本日誌,並配置如AWStats。這消除了您自己記錄此信息的需要,並且應該爲您提供您正在查找的信息 - 可能已在現有報告中完成配置。這樣做比谷歌分析的好處將是它的服務器端跟蹤 - 等
0
也許說明明顯,但你有一個很好的索引與您正在查詢的關係?
0
1)看看使用Piwik執行Google Analytic類型跟蹤,同時保留對MySQL數據的控制。 2)如果您必須繼續使用您自己的系統,請使用InnoDB Plugin來支持壓縮的表類型。另外,將IP轉換爲無符號整數,將useragent和request轉換爲使用Innodb壓縮或歸檔引擎壓縮的無符號整型引用查找表。
3)跳過分區並按月分割數據庫。
0
這就是「數據倉庫」的用途。考慮購買一本關於倉儲的好書。
在某些「當前活動」模式中收集原始數據。 (a)從當前活動模式中分離出來,(b)針對計數/總和/分組查詢進行優化。
移動,BTW表示插入倉庫模式並從當前活動模式中刪除。
將正在進行的事務處理與查詢/分析處理分開。
相關問題
- 1. 跟蹤MySQL數據庫中每個用戶的「被阻止的用戶」的最有效方法是什麼?
- 2. 跟蹤所有設計登錄的最佳方式是什麼?
- 3. 如何以最有效的方式跟蹤視圖數量?
- 4. 什麼是記錄極少量數據的最有效方式?
- 5. 跟蹤數據庫中修改過的元組的最佳方式是什麼?
- 6. 什麼是持續更新和跟蹤對象得分的最有效方式?
- 7. 你發現跟蹤所有節目信息的最佳方式是什麼?
- 8. 什麼是使用核心數據的最有效方式?
- 9. 跟蹤TCP連接客戶端的最佳方式是什麼?
- 10. 什麼是工作流中的版本跟蹤數據的最佳方法?
- 11. 這是批量插入Oracle數據庫的最有效方式?
- 12. 跟蹤字符串中標記的最有效方法是什麼?
- 13. 收藏數據庫中的東西 - 保持跟蹤的最有效方法?
- 14. 什麼是處理數據庫中大量表的最有效方法?
- 15. 在SQLCe數據庫中存儲對象的最有效方式是什麼?
- 16. 跟蹤執行量角器測試所消耗的瀏覽器內存的最有效方法是什麼?
- 17. 跟蹤誰在請求什麼數據的最佳方式?
- 18. 跟蹤哪些用戶在nodejs中聯機的最佳方式是什麼?
- 19. 什麼是在c#中的表中存儲大量數據的最有效的方式是什麼?
- 20. 用php跟蹤內部推薦的最佳方式是什麼?
- 21. 在input type =「text」中跟蹤onchange的最佳方式是什麼?
- 22. 跟蹤Aframe中傳送位置的最佳方式是什麼?
- 23. 跟蹤用戶使用MySQL選擇的數字列表的最有效方法?
- 24. 將行爲注入到所有實體中的最有效方式是什麼?
- 25. 什麼是從其他數據庫更新表數據的最有效方法?
- 26. 將數據從數據庫傳輸到服務器到客戶端的最有效方式是什麼?
- 27. 跟蹤實時通知發送給用戶的最佳方式是什麼?
- 28. 在MySQL中使用字段的最有效方式是什麼?
- 29. 檢查mySQL數據庫中現有用戶的最佳方法是什麼?
- 30. 跟蹤用戶在網站上執行的所有事件的最佳方法是什麼?
你是如何查詢這張桌子的? (例如,你總結整個表?爲用戶提取每個單獨的記錄嗎?限制你的查詢,例如時間範圍? – nos 2010-06-03 17:03:22