簡體   English   中英

我應該將哪個數據庫用於家庭項目?

[英]Which database should I use for home project use?

我查看了兩個或三個不同標題的所有“相關問題”並沒有看到任何內容,所以這里有。

我最近在工作中使用過SQL Server和Oracle。 我想在家里玩,主要是使用Java,也許使用Ruby on Rails或Python。 我正在運行Windows 7.我通常會制作Web應用程序,最終可能希望遠程托管這個應用程序,除此之外,沒有特定的要求。

在這種情況下,我對進一步學習SQL的細節並不感興趣; 我可能會使用ORM來抽象出來,這樣它就會自動與方言無關。 我也將與一些非關系數據存儲一起工作,但我在那里考慮了具體問題。

我應該考慮哪些數據庫?

  1. 我安裝了SQL Server Express,它似乎僅限於使用.NET,而且SQL Server Express安裝似乎甚至沒有與它附帶的Visual Studio C#Express版本正確集成。 (例如,我無法自動創建數據庫。)
  2. 我正在考慮使用Oracle XE,除非我想公開提供我的任何項目代碼,以合理的價格找到Oracle托管似乎是一個絆腳石。
  3. 如果我不需要太多的並發性,SQLite似乎是快速而快速的方法。
  4. MySQL似乎是一種容易托管的方式,可能是整體的贏家。 這是希望GUI還不是很糟糕。

SQLite是一個非常好的選擇。 它只是一個文件,速度很快。 沒有配置,事務是原子的,支持TB級數據庫。 有Ada,C#,Lisp,Fortran,Java,Lua,PHP,Perl,Python,Ruby,Tcl等語言綁定...

它有很好的GUI管理選項:

  1. SQLite Admin for Windows
  2. 用於Linux,Mac和Windows 屏幕截圖的 SQLite瀏覽器
  3. 甚至是用於查看/編輯數據的Firefox插件
  4. 還有很多

它用於工業:

  1. 它是Firefox在內部用於書簽和歷史記錄的基礎數據庫。 插件也可以使用它來存儲內部數據。 鏈接
  2. iPhone還在內部使用它來存儲數據,並且應用程序本身可以使用它來存儲自己的數據。 以下是一系列有關在您自己的應用中使用它的教程。 鏈接
  3. Adobe使用它作為Lightroom的文件格式。 Apple將其用於Mail和Aperture。 Skype在Mac和Windows客戶端使用它。 最后,它似乎是諾基亞手機操作系統Symbian不可或缺的一部分。 用戶頁面

我很高興使用SQLite3-- Python界面非常簡單,整個數據庫只是一個文件!

PostgreSQL是一個優秀的開源數據庫,可以與Java,Python,Ruby,.NET等一起使用。

您可以輕松找到PostgreSQL與MySQL的大量比較。 我已經習慣了並喜歡這兩個。

我在家里使用2種不同的基於開源的數據庫引擎:

  1. PostgreSQL的
  2. Sqlite3 (以python 2.5開頭的內置驅動程序)

當您來自Oracle和SQL Server的背景時,我肯定會建議使用PostgreSQL路由,它在Windows上運行本地(作為服務,很像MSSQL / Oracle)以及* NIX系統。 它還有一個相當不錯的跨平台GUI,名為pgAdmin 此外,從PostgreSQL的8.3版本開始,它與MySQL的性能相當,它不像舊的7.x版本那么慢。

我向具有更多Oracle / MSSQL經驗(而不是MySQL)的人推薦PostgreSQL的最大原因是SQL語法和數據庫引擎的一般感覺非常接近。 事實上,PostgreSQL在處理數據庫鎖定和同時讀取方面與Oracle非常相似。

如果您已經熟悉Oracle,那么Oracle Express Edition的安裝要比完整的怪物大得多。

這取決於你的要求。

首先嘗試:如果你需要一個快速的嵌入式數據庫,並且沒有那么多的數據(沒有聚類,沒有分發),我會采取H2。 這個數據庫很快,可以與hibernate / orm一起使用,如果你想使用這個數據庫的特殊功能(很容易通過帶有函數的java開發人員擴展...)

第二次嘗試:你沒有那么多關系數據,想要使用不同類型的對象圖。 你想要快速和完全可嵌入的解決方案,比我在面向對象的內存樣式中使用db4o或其他數據庫。 (沒有orm)

第三次嘗試:如果你想存儲更多的數據(表中數百萬條目),但沒有集群,復制,分發,比我會使用mysql。 很快,很好用。 我發現,postgres在我的expirience中比mysql慢。 mysql非常適合直接在java和hibernate和co中使用。 也。

第四次嘗試:如果你有更多的數據...哦對不起,我忘了你已經問過一個家庭解決方案:)

在上述推薦中,我僅使用免費或開源產品進行非商業用途。

關於圖形工具:你可以找到很多不同的數據庫,但也可以找到獨立於數據庫的解決方案......

玩得開心!

如果您從工作中了解SQL Server,為什么不使用絕對免費的SQL Server Express

還有一堆工具,即SQL Server Management Studio Express等。 它甚至支持全文搜索等高級功能。

鑒於你說你將主要使用Java,我還會考慮將HSQLDB作為SQLite的替代品。

我會選擇MySQL。 就GUI而言,我過去常常使用EMS SQL Manager來獲取MySQL免費軟件,而且它很好...... http://sqlmanager.net/products/mysql/manager

去尋找MySQL。 很多人都在使用它,並且它一直在變得越來越好。

然后去Sqlite,也許你想把這些東西輕松地分發給你的朋友:)

我建議設置一個WAMP服務器 - 它模擬Windows上的LAMP環境,並附帶您自己的MySql / PhpMyAdmin接口,使MySql易於使用。

如果沒別的話,我會為社區推出MySQL並付出代價。

“MySQL似乎是輕松托管的方式,可能是整體贏家。這就是希望GUI還不是很糟糕。”

呃,什么GUI? 您可以使用許多第三方應用程序之一來做簡單的CRUD內容... phpMyAdmin,Navicat等。

如果您對在家開發一些很酷的應用程序感興趣,我不會過分擔心要使用哪個數據庫。 我個人認為它盡可能簡單 - 我認為是SQLite3(正如其他人已經推薦的那樣)。

另一方面,如果您對持久性以及如何存儲數據感興趣,請利用此機會探索RDBMS舒適區之外的方法。 Java有一個簡潔的開源圖形數據庫可供使用,許多非關系替代品可供安裝和使用。

既然你的意圖有點模糊(你想在此開發然后在托管環境中運行嗎?) - 我會考慮可移植性和一般功能。

鑒於我推薦postgresql。 它的sql比mysql更符合ansi - 所以后來使用oracle,sql server,sqlite等應該非常簡單。 當然,你可以(並且如果可行的話)使用ORM - 但是你仍然要處理報告的數據庫語法或非常復雜的sql。

SQLite也非常兼容。 但它缺少一些關鍵功能,其無類型會影響您的可移植性。 否則,很棒的數據庫。

Oracle Express可以很容易地使用 - 但正如您所指出的,在生產中托管通常非常昂貴。 SQL Server也很適合使用 - 但在生產中也非常昂貴。 它還有一種窗口式的方式,我發現過程自動化比使用面向unix的數據庫通常做的更尷尬。 注意,您也可以使用DB2 Express - 它可以免費使用2個CPU,4 GB內存和所需數據。 所有這些都非常適合商業環境,但你不會在便宜的托管網站的菜單上找到任何。

MySQL當然是另一種選擇。 這是一個自由市場的領導者。 但是,如果數據質量很重要,那么可移植性問題是一種痛苦,而且繁瑣和安靜的錯誤會導致額外的開發工作。 然后是許可的復雜性和未來的不確定性。 在2002年我肯定會說MySQL,但在2009年我會說大部分時間都是Postgresql。

您也可以嘗試Firebird。

它易於部署和嵌入,占用空間非常小(在某些情況下少於5 Mb)並且內存消耗非常低。

並且,如果它真的不是全部,它就沒有管理。 這是一個非常有趣的選擇。

為什么家里的甲骨文會讓你不寒而栗。 它在一台相當小的筆記本電腦上工作正常,並且有一個免費版本可以用於非商業用途(數據庫大小有限,就像sql server express一樣)。 也就是說,Windows上的mysql可能會使用更少的資源。 至於用戶界面,他們都是同樣糟糕的。 但是可以使用第三方工具。

這取決於您正在開發的應用程序需要什么。 它是一個可以在另一台機器上運行的Web應用程序,還是一個最適合嵌入式數據庫的桌面應用程序?

也就是說,MySql不會出錯,它可以滿足您的大多數需求。

“上次我使用它時,MySQL有一個非常平庸的用戶界面”

這是選擇數據庫的限制嗎? 有很多很好的GUI(如果你是GUI人)

您可以使用PhpMyAdmin或MySQL查詢瀏覽器。 我會說MySQL更好,但是如果你的應用程序不涉及很多寫操作(因為它是一個家庭項目),你可以考慮使用SQLite。

例如,如果你需要一個練習網絡應用程序的數據庫,我是sqlite的忠實粉絲,它適用於PHP等,它是一個嵌入式數據庫,所以沒有數據庫管理員可以說。 SQL方言雖然與其他方言略有不同,但還不足以成為一個顯示阻止者。

它也是非常快的“公共域”許可證,所以你也可以在商業應用程序中使用它。

如果你在工作中使用SQL Server和oracle,那么我會選擇其中一個。 事實上,為什么不去兩個? 安裝兩者的快速版(假設它們將共存)並了解每個版本的優缺點聽起來是一種有價值的方法。

您甚至可以嘗試開發數據庫獨立性以及自己使用每個語法和特定功能。 對我來說聽起來很有教育意義。

MySQL和GUI使用DBVis ,它是免費的,兼容大量的數據庫,如MSSQL,Oracle等...

我仍然認為Oracle可能有用。 從桌面上的XE開始,輕松遷移到Web,或者從公開托管的Apex開始。 APEX GUI易於學習,直觀且功能強大。 您可以像在Access中創建表單一樣輕松地創建網頁。 在我看來,它可以自由地用於可能發展到非常大的項目的小型項目 - 因此是繁重的基礎設施。 但正如我所提到的,如果您使用他們的托管應用程序,則您自己的計算機上沒有資源問題。

暫無
暫無

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

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