【问题标题】:When not to use MySQL or other relational DBs? [closed]什么时候不使用 MySQL 或其他关系数据库? [关闭]
【发布时间】:2011-10-03 06:19:26
【问题描述】:

简单的问题,什么时候不应该使用 MySQL?

我的好奇心有两个方面:

  1. 什么时候特别要避免使用 MySQL?
  2. 一般何时不使用关系数据库?

我想确定我选择 MySQL(在 Apache 上使用 PHP),因为我的雇主坚持使用非免费或开源的东西,但我坚持不这样做。所以我只是想确定一下。

【问题讨论】:

  • 你知道ORM通常只是一种更抽象的数据库使用方式吗?这是一个附加层,而不是替代层。
  • @JonSkeet:哎呀!抱歉,我写它的方式确实听起来我正在更换数据库。我的意思是根本不使用 relational 数据库或不直接使用它。抱歉,第一语言不是英语,我会努力学习。
  • @JonSkeet:好的,我已经完全摆脱了 ORM 的问题。现在想起来,不知道为什么我还在那里。

标签: mysql database database-design nosql


【解决方案1】:

当您的数据不是关系型数据时,或者(根据您的数据访问模式和/或数据模型)您可以选择比关系型更好的模型时,使用它。如果您不确定是否有更好的模型来解决您的问题,请使用 RDBMS - 它受欢迎的原因是它非常适合大多数问题。 Facebook 和 Google 使用 MySQL(虽然不仅是 MySQL,而且 Facebook 的主要部分都在 MySQL 之上),所以当您考虑使用 NoSQL 解决方案时要考虑这一点。

有不同类型的数据库,例如图形数据库,它们适用于特定任务。如果您有这样的特定任务,请研究该任务的领域。

至于为 RDBMS 选择供应商,这更多是业务目标,然后是技术目标。有时,支持、经过认证的专业人员、培训/咨询,甚至与公司基础设施相匹配(如果它拥有广泛的 Windows 网络和经验丰富的 Windows 管理员,它可能更喜欢使用 Windows 服务器而不是基于 Linux 的服务器)是特定软件的原因被选中。

【讨论】:

    【解决方案2】:

    1.什么时候特别要避免使用 MySQL?

    并发数据库会话同时修改和查询数据库时。

    MySQL 适用于只读或多读场景(MySQL 经常用于 Web 并非偶然),但 Oracle、MS SQL 更高级的多版本并发控制能力服务器、PostgreSQL 甚至 Firebird/Interbase 通常可以处理读写工作负载,不仅具有更好的性能,而且具有更好的正确性(即它们更擅长避免可能危及数据一致性的各种并发伪影)。

    即使是传统的“锁定”数据库(如 DB2 或 Sybase)也可能比 MySQL 更好地处理读写工作负载。

    2. 一般什么时候不使用关系数据库?

    简而言之:当您的数据不是关系数据时(即它不适合实体、属性和关系的范式)。

    话虽如此,许多现代 DBMS 具有传统关系模型之外的功能,例如“理解” XML 层次结构的能力。因此,即使是通常不会存储在关系数据库中(或充其量存储在 BLOB 中)的非结构化数据也不再一定是禁区。

    【讨论】:

    • 谢谢!最后一个具有技术意义的答案。不知道 MySQL 的限制。
    【解决方案3】:

    这不是一个很难回答的问题。如果另一个 DBMS 将证明更便宜/更好的价值,请不要使用 MySQL。 Oracle 或 SQL Server 等其他领先的 DBMS 具有 MySQL 所没有的许多特性。此外,如果您的雇主已经在其他 DBMS 上进行了大量投资,那么在没有充分理由的情况下支持 MySQL 可能会非常昂贵且难以支持。你为什么坚持使用 MySQL?

    还要记住,没有企业会购买 DBMS。他们购买了包含 DBMS 的完整解决方案。考虑整个解决方案的投资回报,而不仅仅是 DBMS。

    【讨论】:

    • 我坚持的原因是因为我们将只为这个项目购买主机等。所以 LAMP 堆栈会更便宜。您能否详细说明 MS SQL 和 Oracle 在 MySQL 之上提供了什么?
    • 关于 [插入 RDBMS 与 RDBMS] 的争论是如此之长,双方都有很多狂热分子。如果您正在构建的网站不超过表中的数亿条记录,或者您不需要支持每秒数千个查询,那么使用 MySQL 就可以了。
    • 作为 N.B.说,这里几乎没有足够的空间来列出每个 DBMS 的优缺点。我不知道您为什么认为在 LAMP 上进行托管比在其他平台上托管便宜。我怀疑这总是正确的,但如果托管成本是驱动因素,那么我建议您货比三家,首先寻找最便宜的交易,而不是将您的选择限制在一种技术上。
    • @dportas:嗯,这不是最便宜的交易,而是更像 - 我们将选择 Rackspace 和我可用的选项,它似乎适合 LAMP 堆栈,我已经在 LAMP 和也更便宜。
    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 2017-09-20
    • 2019-05-09
    • 2019-01-17
    • 2018-08-28
    • 2017-05-25
    • 2010-09-20
    • 1970-01-01
    相关资源
    最近更新 更多