簡體   English   中英

數據庫設計:非常分層的數據; 用於處理的服務器外子集緩存; 小到中等大小; (完全初學者)

[英]Database design for: Very hierarchical data; off-server subset caching for processing; small to moderate size; (complete beginner)

我發現自己有一個項目(非常放松,對失敗幾乎沒有影響),我認為某種數據庫需要解決。 問題是,雖然我一般都缺乏經驗,但我從來沒有觸及任何數據庫,除了我可以用Google挖掘並設置普通家庭雲的教程。 我不知道自己不知道什么。

這是關於這種情況:

數百種不同的自動化測試系統會經常通過慢速網絡將少量數據寫入數據庫。 然后,很少有用戶會通過慢速網絡從數據庫中獲取大量的數據子集。 然后將處理數據,這將需要大量讀取,此時需要非常高的性能。

這將是數據(按數量級):

  • 包含1000種產品
  • 10個變種包含
  • 100批次含有
  • 包含100個對象
  • 包含10個測試系統
  • 包含100個測試步驟
  • 10個條目

它基本上是一個標記的B樹,其測試步驟為離開節點(因為它們的格式已經標准化)。

批處理將始終屬於一個變體,對象將始終屬於同一變體(但可能屬於多個批處理),並且變體將始終屬於一個產品。 有數十萬個不同的測試步驟。

可能的查詢將嘗試獲取(例如):

  • 批處理中的所有內容(可選:以及范圍內條目的值)
  • 一個變種的一切
  • 來自名為Z的測試系統的X和Y型的所有測試步驟

據我所知,行數十萬列(包含上述所有內容),似乎不是一個好主意,也不是萬億行(兩者之間的中間地帶似乎仍然非常極端)。

我真的想利用數據的層次性,但我在例如嵌套數據庫之類的東西上發現的只是它們根本不是一個東西。

如果你能幫助我,那就太好了:

  1. 要搜索什么
  2. 構建和存儲這些數據的好方法是什么
  3. 有些地方我可以學習避免SQL恐怖故事,即使我發現了很多
  4. 如果有一個很好的方法/最佳實踐,我應該知道傳輸查詢數據並在本地緩存以進行處理

謝謝你,祝你有個美好的一天

安德烈亞斯

  1. 搜索“數據庫規范化”。
  2. 規范化的關系數據庫是一種精細的結構。
  3. 如果你想避免SQL的恐怖,你也可以嘗試一個No-SQL 面向文檔的數據庫 ,比如MongoDB。 在很多情況下,我實際上更喜歡這種數據庫。
  4. 數據庫將緩存您的查詢結果,當然,您用於查詢數據庫的任何工具都會將數據緩存在工具的內存中(或者如果結果數量非常大,它將至少緩存查詢結果的一個子集) 。 您還可以將結果寫入文件。 “緩存”有很多種方法,它們在不同的情況下都很有用。

暫無
暫無

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

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