簡體   English   中英

在數據庫中存儲堆棧跟蹤的最佳方法是什么

[英]What is the best way to store stacktrace in database

我正在尋找存儲堆棧跟蹤(通過Thread.dumpStack()獲得)和數據庫中的異常跟蹤的最佳方法。

我正在開發一個應用程序性能的應用程序。 它跟蹤方法調用(持續時間),捕獲錯誤(導致異常跟蹤)並生成緩慢執行的堆棧跟蹤。

環境是Java + MySQL 5.0

目前,Web請求和堆棧跟蹤的跟蹤信息存儲在文件中(如json),元數據存儲在數據庫表中。

出於報告和復制的目的,我正在考慮將它們存儲在數據庫中。 平均而言,完整跟蹤信息的大小為40 kb。 將它們存儲在數據庫中還是保存在文件系統中並轉移到nosql是明智的。

轉到nosql,我可以解決復制,但報告仍然很難。

為什么不將報告所需的其他信息存儲為“元數據”的一部分? 將完整的堆棧跟蹤存儲在文件中並根據應用程序的需要在DB中存儲對該文件的引用可能沒有任何問題。 我會考慮您需要報告的內容並評估這些元素以包含在數據庫中。 例如,您是否報告了異常的根本原因? 考慮將數據預處理到您需要報告的內容。 如果您已經單獨保存整個堆棧跟蹤,那么如果您將來需要報告其他內容,則不會丟失任何信息。

很久以前就問過這個問題,所以我假設你已經做出了一個決定,但是在沒有明確理由的情況下,我會猶豫是否轉向nosql架構。 關系數據庫在某些場景中仍然占有一席之地,並且它們中的大多數都具有用於存儲大量文本的有效機制(例如,堆棧跟蹤)。

暫無
暫無

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

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