在日常开发中,我一般用mysql数据储存数据,memcache储存缓存,但是我不知道如mongodb这一类的nosql数据库到底相比mysql这种数据库有什么优势,在什么场景下我改选择mongodb这种数据库?希望各位能用浅显的语言帮忙解释下。
数据的结构不一定的时候用mongodb最好,比如你sql数据库中要先定义所有字段的类型,名字,长度什么的,这就缺少了弹性,mongodb在某个字段数据不存在的时候就当他没有。
举个例子,假设我们的服务器要在数据库里保存系统发生的事件event。某某用户做了某某事,有时候你要纪录他发送的post的原始的body内容以备查询,有的时候又不要,那么在不需要纪录post内容的时候,假如你在sql中定义string长度为1000,就浪费了这段空间,mongodb就不会。并且在取出这条记录的时候,sql数据库会返回你定义的那个结构,即使其中的一个字段为空,而mongodb由于保存的时候就没有包含那个为空的字段,取出来的时候也同样不会有。
还有就是mongodb对于json的各种结构支持的很不错,当然这应该不是你采用mongodb的主要目的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。