gpt4 book ai didi

php - 为此目的,MongoDB 或 MySQL 的优缺点

转载 作者:可可西里 更新时间:2023-11-01 06:29:15 28 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

3年前关闭。




Improve this question




我正在寻找有关将哪个数据库用于项目的一些帮助或指导。如果您能提出任何观点,或指出缺陷,回答任何问题或为了我即将阐明的目的宣传任何一种数据库类型,我将不胜感激。

无论如何:

  • 我们有一些跟踪表格的软件。
  • 我们的用户可以拥有许多不同的属性,从字面上看
    数百个设置,我不喜欢那么宽的 MySQL 表。一世
    真的很喜欢 Mongo。
  • 我们有不同类型的表格,每一种都可以有完全不同的
    领域。现在,我们有一个包含通用数据的表单列表,然后
    加入相关表以获取更多数据。我会拥有所有的
    使用 Mongo 将这些字段放在一个不同的文档中,我可以轻松地
    添加字段而无需担心。
  • 我们在每个表格上都有费用、笔记和历史记录。我喜欢他们在 MySQL 中的样子
    在不同的表中,我可以按表单或按用户获取历史记录 -
    和笔记一样。
  • 我们的政策几乎是保留所有数据,甚至删除或预先编辑
    数据……永远。我可以做
    担心达到尺寸限制?到 2013 年底,我们可能会讨论 100GB
  • 每页有多少 Mongo 查询会使事情陷入困境? 20? 100?将
    如果我在服务器中有一个 SSD,那会发生什么变化? (现在,我们有大约
    60 MySQL 查询一个页面。这可以改进。)
  • 我的第一个 Mongo 项目有点重要是不是一个坏主意
    一点软件?这是我可以边走边学的东西吗?
  • 我喜欢 MySQL 列名的大小写不敏感,以便快速和
    脏东西。
  • 在 MySQL 中,我将事情分解到不同的表。在 Mongo 中,可以将可以分离的数据放在一起吗?示例:username, email, phone, license1 => [num,isValid], license2 => [num, isValid], notifications => [notification1...notification50000], password hash, salt, setting1, setting2...setting1000, permission1, permission2...permission1000当然,我会使用嵌套样式来组织,但是最好将所有这些存储在“用户”下还是将其分解为设置、许可证、权限?第二个例子:formName, address, notes => [note1 => [user,note,date], note2 => [user,note,date]]
  • 进行 HYBRID 设置是否有任何问题,其中用户数据是 Mongo,而表单数据在 MySQL 中?
  • 我们必须运行很多报告,Mongo 对此有限制吗?例如,我是否会在查找过去 40 天的每份表格时遇到问题,费用超过 10 美元,每行的费用总计,按填写用户的年龄排序?
  • 数据冗余——在亚马逊云上,MySQL 有大量的冗余。有什么服务可以与 Mongo 相匹配吗?自己设置它是否复杂?
  • 任何“云”提供商都支持 MongoDB 吗? AWS 为 MySQL 做了很多工作,但对于 Mongo,我似乎只能靠自己

  • 只是我头顶上的几件事 - 我真的很感激任何人必须说的任何话。

    最佳答案

    We have users that can have MANY different properties, literally hundreds of settings, and I'm not a fan of MySQL tables that wide. I really like Mongo for this.

    We have different types of forms, each can have completely different fields. Right now, we have a list of forms with generic data, then join the relevant table for additional data. I would have all of these fields in one distinct document with Mongo, and I could easily add fields without worrying.



    从您的帖子中我了解到您的最终目标是处理包含不同模式(又名无模式)的用户和表单。我相信 mongodb 是实现此目的的正确选择。

    We have fees, notes, history on each form. I like how in MySQL they are in a different table, and I can get history by form or by user - same as notes.



    没问题,您可以使用不同的文档(或基于它的大小的嵌入文档 - 16 mb 是文档的最大大小)来处理这个没有任何问题。所以你可以拥有像这样的架构
      Form
    - form field1
    - form field1
    - id of the fees doc
    - id of the notes doc
    - id of the history doc

    或(对于嵌入式文档)
      Form
    - form field1
    - form field2
    - embedded fees doc
    - fees field1
    - fees field2
    - embedded notes doc
    - notes field1
    - notes field2

    Our policy is pretty much keep ALL data, even deleted or pre-edited data... forever. >Should I be worried about hitting a size limit? We're probably talking 100gb by the end of >2013



    您将存储尽可能多的数据,已经有 production deployments存储超过 TB 的数据。

    Is it a bad idea for my first Mongo project to be a somewhat major bit of software? Is it something I can learn as I go?



    是的,如果您打算使用 mongodb 而不对应用程序模型进行原型(prototype)设计。我会建议实现(原型(prototype))你的应用程序的最小集合(比如在 mysql 中很糟糕的功能)并学习基础知识,看看你有多舒服。

    I like the case insensitivity of MySQL column names for quick and dirty things.



    Mongo 强制区分大小写,因为这是 BSON(以及 JSON)键值对的本质。

    In MySQL, I break things out to different tables. Is it fine, in Mongo, to put data together that CAN be separated? Example: username, email, phone, license1 => [num,isValid],



    与其他 sql 数据存储相比,mongo 的主要优点是,您可以在同一文档中存储尽可能多的相关信息(在 16 mb 大小内)。如果您不确定数据的大小或某些部分正在增长,那么您可以将该部分拆分为另一个部分。由于您担心查询的数量,它将大大减少请求的数量。

    Is there any problems with doing a HYBRID setup, where user data is is Mongo, and form data is in MySQL?



    不绝对不是,事实上我目前正在运行 mongodb 和 mysql(仅用于事务)。但是,如果您不处理任何事务,则可以坚持使用 mongodb。

    We have to run a lot of reports, are there limitations on this in Mongo? For example, would I run into problems looking for every form from the past 40 days with a fee over $10, with the fees in each row totaled up, sorted by the age of the user who filled it out?



    不,我没有看到任何限制。事实上,它非常快速地处理具有适当索引的查询。但是有些事情你不能用 mongo 做,比如普通连接,你可以使用 map/reduce 来处理报告的数据。

    Is MongoDB supported by any "cloud" providers? AWS does a lot for MySQL, but it looks like I'd be on my own for Mongo



    Mongohq、Mongolab 是一些可用的专用托管 mongo 托管服务。 redhat openshift 和 vmware cloundfoundry 也提供了 mongo 的托管平台,您可以查看 mongo hosting center欲了解更多信息

    希望这可以帮助

    关于php - 为此目的,MongoDB 或 MySQL 的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7535522/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com