2008-08-27 78 views
3

我們生活在數據庫的黃金時代,擁有衆多高質量的商業和免費數據庫。這很好,但缺點是對於需要數據庫用於下一個項目的人來說,這不是一個明顯的選擇。如何選擇SQL數據庫?

  • 用於選擇數據庫的約束條件是什麼?
  • 您使用的各種數據庫如何滿足這些限制條件?
  • 數據庫有哪些特殊功能?
  • 您認爲哪些數據庫適合向其他人推薦?

等等

回答

8

我首先會想到對系統的要求是什麼,數據訪問,數據的安全性,可擴展性,性能,斷開的情況下,數據轉換,數據大小。

另一方面,還要考慮開發人員,操作人員,平臺管理員的經驗和背景。

您還應該考慮一下您在編程語言,操作系統,內存佔用,網絡帶寬,硬件方面的限制。

最後但並非最不重要的是,您必須考慮業務問題,如許可證,支持和運營的預算。

經過所有這些考慮後,您最終只需要幾個選項,選擇應該更容易。

換句話說,選擇最適合您的組織和項目的約束和需求的技術。

我當然認爲,如果考慮到大量替代方案,這不是一個明顯的選擇,但這是我認爲可以將它們縮小到真正可行的項目的唯一方法。

2

毫無疑問,最引人注目的因素是您或您的團隊的專業知識......或您未來可能聘用的資源庫。在大多數情況下,我傾向於使用穀物,在LAMP團隊中使用MySQL,在MS團隊中使用SQL Server,因爲即使在高負載環境中,這些產品中的任何一種都可以做所有必需的事情。

與學習如何使用它的痛苦相比,任何其他數據庫的好處都是微不足道的。在我看來,唯一的例外是在高需求的環境中:

a。明顯的選擇已經嘗試並且失敗

b。擴展的好處是將邊際收益乘以這樣一種程度,以至於使用意想不到的東西的代價是值得的。

我認爲需要僱用至少兩名,最好是三位優秀的數據庫管理員,並且長期熟悉新數據庫。

首先我會嘗試僱用他們的技術失敗,因爲它更可能是它的使用方式,而不是導致問題的技術本身。

3

我的選擇標準(主要是編程中心):

  • 保養:如何更新/安裝的修補程序?
  • 事務控制:它是如何實現的
  • 存儲過程的支持?
  • 您可以在存儲過程中使用異常處理嗎?
  • 成本
  • 作爲一個好處:你可以在存儲過程中使用遞歸? (例如,在SQL Server 2000中,遞歸在32次IIRC後停止)
3

對於大多數企業環境中的人來說,選擇歸結爲「我們擁有的人」。

既然您似乎有幸能夠有選擇的餘地,我會快速瀏覽這些問題,最後再提出一些問題。

最大的標準可能是成本。你想/你準備支付你的DBMS平臺嗎?如果不是的話,那麼Oracle,MS SQL Server,Sybase和其他人可能就不在了,儘管如果你沒有構建商業應用程序,那麼可能會有一些迴旋餘地。此外,平臺 - 您可以在硬件上運行軟件嗎?

其他維度的考慮可能包括預期的併發連接數,事務vs主要讀取,大小,可用性和我猜其他許多人。

在我的憤世嫉俗的世界觀中,主要是要避免「特殊功能」,它們旨在將您鎖定到平臺中。因此,像Oracle PL/SQL這樣的功能雖然功能強大(並且可能意味着以更多許可成本需要額外的CPU功能),但它不具備可移植性。如果你期望極高的音量,那麼分割可能是有用的,我想。

我已經與Oracle,MS SQL Server,MySQL,PostreSQL,SQLite和Sybase一起工作,我可以想到。我很樂意推薦除Sybase之外的所有產品,我最近對此有一些擔憂(我可能很容易出錯,但我個人認爲這筆錢可以更好地用於其他地方),但並非全部用於相同的應用程序。

理想情況下,我喜歡溫暖的感覺,因爲我可以輕鬆移植,所以使用哪個數據庫平臺並不重要。在數據和業務邏輯之間有一個良好的抽象層,我應該能夠在本地進行開發,比如優秀的SQLite,並且可以輕鬆實現,例如Postgres。有了像Rails的ActiveRecord之類的東西,再加上對保留字的差異等一些小意識,這幾乎可以完全免費。

+0

這可能是一點點憤世嫉俗的建議供應商特定功能的目的是鎖定你的平臺:) – 2009-12-18 14:52:13

2

現有的答案很好。值得注意的是,Oracle現在擁有XE版本的10g數據庫,該數據庫免費提供,並附帶了基於Web的偉大開發環境Application Express。

它是有限的,4GB的高清,1 GB的RAM和只使用一個CPU。這足以運行更小的系統,如果需要,可以在以後輕鬆升級。 Oracle可以是最艱難的學習之一,但也是最好的之一,有你的簡歷:-)

我想從微軟的SQLServer也有一個「啓動」類型的數據庫。不要打折商業產品 - 如果你打算用數據庫技術打賭你的公司,我寧願使用甲骨文或微軟的產品。那並不是說開源有什麼問題。

花一段時間評估他們:-)

0
  • 的Linux,網絡託管 - MySQL的(PostreSQL也許)
  • 主流SME - MS SQL
  • 大鐵(銀行等) - 甲骨文

關於除這三者之外的任何事情的考慮都是手淫 - 任何其他數據庫都會成爲關於利基產品的討論,以解決您可能尚未遇到的特定問題。如果您選擇以外的任何其他上述三個你會 -

  1. 很難找到人來處理該項目或存到數據庫去
  2. 鬥爭激發你的決定沒有學術討論
  3. 有人會罵你,你的祖先和你的血統在幾年之後 - 無論如何都要替換你的選擇。

利基數據庫並不是建築學上的進步 - 它是像中間件,消息傳遞,雲服務等技術,您可以負擔得起(也應該)能夠找到好產品。