簡體   English   中英

關於數據庫設計的問題

[英]Question about database design

我正在為房地產公司工作,我們即將使用C#開發我們的 windows 應用程序的新版本。

以下是當前情況的摘要:

我們有 400 萬條記錄並且還在增加,我們使用SQL Server 2005將這些記錄存儲在一個 52 列的表中。 幾乎所有最終用戶在每次搜索時至少使用 30 到 40 列。

我知道這不是標准設計,但是我嘗試了很多場景,我已經將這 52 列拆分到其他表並建立了主題之間的關系,但是使用一個表時性能仍然更好(即使沒有主鍵, ) 我已經添加了索引。但是為所有列添加索引是不合邏輯的。

我們還有其他限制,用戶的硬件,他們中的許多人仍然擁有 Pentium II。

另一方面,我們有Google 桌面搜索GDS 我已經在他們的電腦上測試過這個應用程序,性能還是不錯的。

SQL服務器和GDS引擎有什么區別?

是否可以使用類似GDS的引擎來存儲我的數據? 這種存儲的名稱是什么?

是否可以使用類似 GDS 的引擎來存儲我的數據? 這種存儲的名稱是什么?

是的,這些被廣泛稱為NoSQL ,並且有幾十個不同的“數據庫”專門用於非關系數據存儲。

話雖如此,在更大的計划中,400 萬條記錄甚至都不算多,幾乎可以肯定,這里的數據庫設計有問題。 很少有單表設計最快的情況,SQL Server 等引擎非常擅長處理關系數據。 看看這樣的討論,也許在做出任何決定之前了解更多關於數據庫設計和優化的知識。

這實際上取決於您如何應用索引。 此外,您可以擁有一組用於應用程序的表格和一組用於報告的表格。 這樣,您可以提高報告的性能,並且仍然保持數據正確。 因此,每次您獲得關系數據結構的更新時,您都有一個流程可以獲取該數據並將其遷移到您的數據庫中,這樣查詢速度會更快。

GDS 和 SQL 不一樣。 但是,SQL 服務器(作為可選組件)具有稱為全文搜索的功能,它可能有助於滿足您的需求。

一般來說,我想以下可能是一個很好的解決方案:

  • 規范化您的數據庫 - 如果您沒有使用規范化數據庫獲得更好的性能,那么您肯定沒有設置正確的主鍵和外鍵。
  • 在需要搜索的文本字段上使用提及的 FTS

暫無
暫無

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

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