代码之家  ›  专栏  ›  技术社区  ›  Dean J

我应该将哪个数据库用于家庭项目?

  •  8
  • Dean J  · 技术社区  · 16 年前

    我看了所有的“相关问题”,有两三个不同的标题,没有看到任何东西,所以这里是。

    我最近在工作中使用过SQL Server和Oracle。我想在家里翻来覆去,主要是用Java,也许是露比在Rails或Python上。我在运行Windows 7。我通常制作Web应用程序,最终可能希望远程托管它,除此之外,没有预先的特定需求。

    在这种情况下,我对进一步了解SQL的输入和输出不感兴趣;我可能会使用ORM来提取它,这样它就自动成为方言不可知论者了。我还将处理一些非关系数据存储,但是我在这里有一些特定的数据存储。

    我应该考虑哪些数据库?

    1. 我安装了SQL Server Express,它似乎只限于使用.NET,而且SQL Server Express安装似乎甚至没有与它附带的Visual Studio C Express版本正确集成。(例如,我不能自动创建数据库。)
    2. 我正在考虑OracleXE,除非我曾经想公开我的任何项目代码,以合理的价格为Oracle找到主机似乎是一个绊脚石。
    3. 如果我不需要太多并发性,sqlite似乎是实现快速和快速的方法。
    4. MySQL似乎是一种很容易托管的东西,并且可能是总体的赢家。希望图形用户界面不那么糟糕。
    23 回复  |  直到 16 年前
        1
  •  18
  •   Steven Hepting    16 年前

    sqlite是一个很好的选择。它只是一个文件,而且速度很快。没有配置,事务是原子的,支持太字节大小的数据库。对于艾达,C语言,LISP,FORTRAN,Java,Lua,PHP,Perl,Python,Ruby,Tcl等语言绑定。

    它具有良好的GUI管理选项:

    1. SQLite Admin 对于Windows
    2. SQLite Browser 对于Linux、Mac和Windows screenshots
    3. 即使是 Firefox plugin 用于查看/编辑数据
    4. 更多

    用于工业:

    1. 它是火狐内部用于书签和历史记录的基本数据库。插件也可以使用它来存储内部数据。 link
    2. iPhone也在内部使用它来存储数据,应用程序自己也可以使用它来存储自己的数据。下面是一系列关于在您自己的应用程序中使用它的教程。 link
    3. Adobe使用它作为Lightroom的文件格式。苹果公司将其用于邮件和光圈。Skype在Mac和Windows的客户机中使用它。最后,它似乎是诺基亚手机操作系统Symbian不可或缺的一部分。 users page
        2
  •  11
  •   momeara    16 年前

    我很喜欢使用sqlite3——python接口非常简单,整个数据库只是一个文件!

        3
  •  7
  •   David G    16 年前

    PostgreSQL 是一个优秀的开源数据库,可以与Java、Python、Ruby、.NET等使用。

    你可以很容易地找到很多PostgreSQL和MySQL的比较。我既喜欢又喜欢。

        4
  •  5
  •   Astra    16 年前

    我在家里使用两种不同的基于开源的数据库引擎:

    1. PostgreSQL
    2. Sqlite3 (从python 2.5开始的内置驱动程序)

    由于您来自Oracle和SQL Server的背景,我绝对建议您使用PostgreSQL路由,它在Windows(作为一种服务,很像mssql/oracle)和*nix系统上运行。它还有一个相当不错的跨平台图形用户界面 pgAdmin . 另外,从PostgreSQL的8.3版开始,它的性能与MySQL相当,它不像旧的7.x版本,后者是S-L-O-W。

    这个 最大的 我推荐PostgreSQL给有更多Oracle/MSSQL经验的人(而不是MySQL)的原因是,数据库引擎的SQL语法和总体感觉非常匹配。事实上,PostgreSQL在处理数据库锁定和同时读取方面与Oracle非常相似。

        5
  •  3
  •   skaffman    16 年前

    如果你已经对甲骨文感到满意了,那么 Oracle Express Edition 比全尺寸的怪物更容易安装。

        6
  •  3
  •   drdrej    16 年前

    这取决于你的要求。

    第一次尝试: 如果你需要一个快速嵌入的数据库,并且没有那么多的数据(没有集群,没有分布),我会选择h2。这个数据库很快,可以用Hibernate /ORM,如果你喜欢使用这个数据库的特殊特性(很容易被Java开发人员用函数扩展)。

    第二次尝试: 您没有那么多的关系数据,想要使用不同类型对象的图形。您需要快速且完全可嵌入的解决方案,而不是我使用DB4O或其他面向对象的InMemory样式的DB。(没有ORM)

    第三尝试: 如果您想要存储更多的数据(例如表中有一百万个条目),但是不需要集群、复制、分发,那么我将使用MySQL。速度快,使用方便。 我发现,postgres和mysql一样在我的到期时间里慢。MySQL完全可以直接在Java和Hibernate和Co.中使用。

    第四次尝试: 如果你有更多的数据…哦,对不起,我忘了你问过家庭解决方案:)

    在上述建议中,我只将免费或开源产品用于非商业用途。

    关于一个图形工具:你可以为不同的数据库找到它们中的许多,但也可以找到独立于数据库的解决方案…

    玩得高兴!

        7
  •  2
  •   marc_s MisterSmith    16 年前

    如果您在工作中了解SQL Server,为什么不使用绝对免费的 SQL Server Express 是吗?是吗?

    它周围还有许多工具,如SQL Server Management Studio Express等。它甚至支持诸如全文搜索等高级功能。

        8
  •  2
  •   William    16 年前

    考虑到你说你将主要使用Java,我也会考虑。 HSQLDB 作为sqlite的替代。

        9
  •  1
  •   Tomas    16 年前

    我会和MySQL一起做这个。就图形用户界面而言,我经常使用EMSSQL管理器来管理MySQL的免费软件,这是可以的。 http://sqlmanager.net/products/mysql/manager

        10
  •  1
  •   Shai    16 年前

    寻找MySQL。很多人都在使用它,而且它一直在变好。

        11
  •  1
  •   LostMohican    16 年前

    那就用sqlite吧,也许你想把这些东西轻松地分发给你的朋友们:)

        12
  •  1
  •   geowa4    16 年前

    我建议你设置一个 WAMP server -这在Windows上模拟了一个LAMP环境,并附带了自己的mysql/phpmyadmin接口,使mysql易于使用。

        13
  •  1
  •   Andrew G. Johnson    16 年前

    如果没有其他东西的话,我会选择MySQL作为社区和价格。

    “MySQL似乎是一种易于托管的方式,而且可能是总体的赢家。希望图形用户界面不那么糟糕。”

    呃,什么图形用户界面?您可以使用许多第三方应用程序中的一个来完成简单的积垢工作…phpmyadmin、navicat等。

        14
  •  1
  •   KenFar    16 年前

    由于您的意图有点模糊(您希望在此基础上开发,然后在托管环境中运行吗?)-我会考虑可移植性和一般功能。

    既然我推荐PostgreSQL。它的SQL比MySQL更符合ANSI标准,所以以后使用Oracle、SQL Server、SQLite等应该是非常直接的。当然,您可以(如果可行的话也应该)使用ORM,但是您仍然需要处理用于报告或非常复杂的SQL的数据库语法。

    sqlite也非常符合ANSI标准。但是它缺少一些关键的特性,它的无类型性会影响您的可移植性。否则,就是伟大的数据库。

    Oracle Express可以很容易地使用,但正如您指出的,在生产中托管通常非常昂贵。使用SQL Server也很好,但在生产中也非常昂贵。它还有一种Windows方式,我发现对于流程自动化来说,它比通常使用面向Unix的数据库更难做到。注意,您也可以使用DB2Express——它可以免费提供2个CPU、4 GB内存和任意数量的数据。所有这些对于商业设置都是很好的,但是在廉价的托管网站上你不会在菜单上找到任何。

    MySQL当然是另一种选择。它是自由市场的领导者。但是可移植性问题是一个难题,如果数据质量很重要,那么错误和安静的错误会给开发带来额外的工作。然后是许可证的复杂性和未来的不确定性。在2002年我肯定会说MySQL,但在2009年我会说PostgreSQL而不是大多数时候。

        15
  •  1
  •   rob    16 年前

    如果您有兴趣在家里开发一些很酷的应用程序,我不会太担心要使用哪个数据库。就我个人而言,我会尽可能的简单——在我看来,这就是sqlite3(正如其他人已经推荐的那样)。

    另一方面,如果您对Persistence和数据存储方式感兴趣,那么可以利用这个机会探索RDBMS舒适区之外的方法。Java有一个完整的开源 graph database 可供选择,而且数量众多 non-relational alternatives 在外面安装和清理。

        16
  •  0
  •   Klaus Byskov Pedersen    16 年前

    为什么家里的甲骨文会让你发抖?它在一台相当小的笔记本电脑上运行良好,并且有一个免费的版本可以用于非商业用途(数据库大小有限制,就像SQL Server Express)。也就是说,Windows上的MySQL可能会使用更少的资源。至于用户界面,它们都同样糟糕。但是还有第三种Pary工具可以使用。

        17
  •  0
  •   Kyle Trauberman pestades    16 年前

    这取决于您正在开发的应用程序需要什么。它是将在另一台计算机上运行的Web应用程序,还是最好与嵌入式数据库一起使用的桌面应用程序?

    也就是说,MySQL不会出错,它可以满足您的大部分需求。

        18
  •  0
  •   piyer    16 年前

    “我上次使用MySQL时,它有一个非常普通的GUI”

    这是选择数据库的限制吗?有很多好的图形用户界面(如果你是图形用户界面的人)

    你也可以用 PhpMyAdmin 或mysql查询浏览器。我想说MySQL更好,但是如果您的应用程序不涉及很多写操作(因为它是一个主项目) 您可以考虑使用sqlite。

        19
  •  0
  •   Chris Huang-Leaver    16 年前

    例如,如果你需要一个数据库来练习网络应用,我非常喜欢 sqlite 它与PHP等一起工作,它是一个嵌入式数据库,因此没有数据库管理员可言。尽管SQL方言与其他语言略有不同,但还不足以阻止显示。

    它的速度也相当快,“公共领域”许可证,所以你也可以在商业应用中使用它。

        20
  •  0
  •   David Aldridge    16 年前

    如果您在工作中使用SQL Server和Oracle,那么我会选择其中一种。事实上,为什么不两者兼顾呢?安装这两个版本的Express版本(假设它们共存),并了解每一个版本的优缺点,这听起来是一个值得一试的方法。

    您甚至可以尝试开发数据库独立性,以及使用各自的语法和特定特性。听起来很有教育意义。

        21
  •  0
  •   Kico Lobo    16 年前

    你也可以试试火鸟。

    它易于部署和嵌入,占用空间非常小(在某些情况下小于5 MB),而且内存消耗非常低。

    而且,如果真的不是全部,它就没有管理权。这是一个非常有趣的选择。

        22
  •  0
  •   Phill Pafford    16 年前

    mysql和用于GUI的 DBVis 它是免费的,可以兼容大量的数据库,比如mssql,oracle等等。

        23
  •  -1
  •   MJB    16 年前

    我仍然认为甲骨文可能有用。从桌面上的XE开始,轻松迁移到Web,或者从公共托管的Apex开始。Apex图形用户界面易于学习、直观和强大。您可以像在Access中创建表单一样轻松地创建网页。在我看来,它可以自由地用于可能发展成非常大的项目的小型项目,从而用于大型基础设施。但是正如我提到的,如果你使用他们的托管应用程序,你自己的机器上就没有资源问题。