微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – MongoDB或MySQL的优点/缺点

我正在寻找一个关于哪个数据库用于项目的帮助或指导.如果您可以提出任何问题,或者注意到缺陷,请回答任何问题或提出任何数据库类型,以便我将要阐明的目的,我真的很感激.

无论如何:

>我们有一些跟踪表单的软件.
>我们有用户可以有很多不同的属性,字面上
数百种设置,我不是MySQL表的粉丝.一世
真的很喜欢Mongo这个.
>我们有不同类型的表格,每个可以有完全不同的形式
领域.现在,我们有一个表格与一般数据的列表,然后
加入相关表格以获取更多数据.我会全部
这些字段与Mongo在一个不同的文档中,我可以很容易地
添加字段不用担心.
>我们在每张表格上都有费用,笔记,历史记录.我喜欢如何在MysqL
在不同的表中,我可以通过表单或用户获取历史记录 –
与笔记一样.
>我们的政策几乎保留所有数据,甚至删除或预编辑
数据…永远我应该是
担心大小限制?到2013年底,我们可能会说100gb
>每页的Mongo查询有多少会将事情淹没? 20? 100?将
如果我在服务器上有SSD,会发生什么变化? (现在,我们有关于
MySQL查询一个页面.这可以改进.)
>我的第一个Mongo项目是一个有点重要的一个坏主意
一点软件?当我走的时候,我能学到什么吗?
>我喜欢MysqL名称的情况不敏感,快速
肮脏的东西
>在MysqL中,我将事情分解成不同的表.在蒙古,把数据放在一起可以分开吗?示例:用户名,电子邮件,电话,license1 => [num,isValid],license2 => [num,notifications => [notification1 … notification50000],密码哈希,盐,设置1,设置2 …设置1000,权限1,权限2 … permission1000当然,我将利用嵌套风格进行组织,但最好是存储所有这下面的“用户”还是将其分解为设置,许可证,权限?第二个例子:formName,address,notes => [note1 => [用户,注释,日期],note2 => [用户,请注意,日期]]
>进行HYBRID设置是否有任何问题,用户数据是Mongo,表单数据在MysqL中?
>我们必须运行很多报告,在Mongo有这些限制吗?例如,在过去40天内,我会遇到问题,找出每一张表格,费用超过10美元,每一行的费用将按照用户填写的年龄进行排序.
>数据冗余 – 在Amazon云上,MysqL具有大量的冗余性.有没有与Mongo匹配的服务?进行自己设置是很复杂的吗?
MongoDB是否受到任何“云”提供商的支持?对于MysqL来说,AWS做了很多工作,但是对于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存储数据超过太字节.

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,而无需原型设计您的应用程序模型.我会推荐实现(原型)一个最小的应用程序集(如在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,

mongo超过其他sql数据存储的主要优点是,您可以在同一文档(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?

不,我没有看到任何限制.实际上,它非常快速的处理查询与适当的索引.但是,有一些事情你不能像常规连接一样做,而是可以使用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 openhift& vmware cloundfoundry为mongo提供托管平台,您可以查看mongo hosting center了解更多信息

希望这可以帮助

原文地址:https://www.jb51.cc/php/131316.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐