新足迹

 找回密码
 注册

精华好帖回顾

· 墨尔本私立学校讨论!决定枣子2015不去MGS! (2011-2-16) giggle · 六天玩转凯恩斯!(图) (2010-5-25) hope54
· 毛毛虫来啦~~~ (2007-10-16) 紫雪花 · 澳洲小生意攻略(鱼薯店篇、一) (2008-7-5) 车友
Advertisement
Advertisement
查看: 4726|回复: 37

[IT] sql vs nosql [复制链接]

发表于 2019-9-10 18:14 来自手机 |显示全部楼层
此文章由 ft19s 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ft19s 所有!转贴必须注明作者、出处和本声明,并保持内容完整
学了一天pymon+mongogb,快吐血了。和标准sql完全不同,rdbms的表都是方方正正,sql语句也是清醒简洁。mongo的数据长短不齐,杂乱无章,表面上看是更加灵活了,实际上给后期数据清理带来很大潜在隐患。增删改查语句也很奇怪。敢问mongodb在澳洲工业界用的多吗?个人感觉这个东西还是走不远啊

Advertisement
Advertisement

发表于 2019-9-10 18:21 来自手机 |显示全部楼层
此文章由 dc81 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dc81 所有!转贴必须注明作者、出处和本声明,并保持内容完整
mongodb很流行啊,用得多

发表于 2019-9-10 18:24 |显示全部楼层
此文章由 Mushroomm 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Mushroomm 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2019-9-10 18:35 |显示全部楼层
此文章由 蒙面超人 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 蒙面超人 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 蒙面超人 于 2019-9-10 18:38 编辑

两者各有各的特点,各有各的应用场景。nosql主要是vertical scaling,针对云计算来优化。复杂的join还是rds更合适
monogodb已经落伍了,学dynamodb吧(或者PostgreSQL)
头像被屏蔽

禁止发言

发表于 2019-9-10 18:42 |显示全部楼层
此文章由 tyler_kwok 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tyler_kwok 所有!转贴必须注明作者、出处和本声明,并保持内容完整
蒙面超人 发表于 2019-9-10 19:35
两者各有各的特点,各有各的应用场景。nosql主要是vertical scaling,针对云计算来优化。复杂的join还是rds ...

呃..NoSQL不是horizontal scaling么..?
签名被屏蔽

发表于 2019-9-10 19:00 |显示全部楼层
此文章由 蒙面超人 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 蒙面超人 所有!转贴必须注明作者、出处和本声明,并保持内容完整
tyler_kwok 发表于 2019-9-10 18:42
呃..NoSQL不是horizontal scaling么..?

你说的对,我搞混了。 nosql因为不依赖schema所以能添加和减少硬盘容量
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2019-9-10 19:51 |显示全部楼层
此文章由 tyler_kwok 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tyler_kwok 所有!转贴必须注明作者、出处和本声明,并保持内容完整
蒙面超人 发表于 2019-9-10 20:00
你说的对,我搞混了。 nosql因为不依赖schema所以能添加和减少硬盘容量 ...


哈哈小笔误,没事。前几年nosql的确很火,不过近来sql又火回来了,主要是nosql没有schema和标准操作语言标准,很难完全替代sql。
签名被屏蔽

发表于 2019-9-10 22:27 |显示全部楼层
此文章由 蒙面超人 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 蒙面超人 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 蒙面超人 于 2019-9-10 22:28 编辑
tyler_kwok 发表于 2019-9-10 19:51
哈哈小笔误,没事。前几年nosql的确很火,不过近来sql又火回来了,主要是nosql没有schema和标准操作语言 ...


本来就没有要替代的意思吧,不同时代的需求的产物。youtube上有个aws的人发表过一个webinar很详细的介绍了nosql的由来。大概的意思就是原来存储介质很贵,所以流行rds因为可以节省空间。现在存储介质已经白菜价了,但是cpu资源很贵,所以nosql就大行其道。特别是cloud computing盛行之后

发表于 2019-9-10 23:36 |显示全部楼层
此文章由 joe7752 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joe7752 所有!转贴必须注明作者、出处和本声明,并保持内容完整
其实很简单,nosql 填补了sql不擅长的部分,举个例子,你有一堆物品,每个物品的属性都不一样,在sql里面你就要建立两张表,一张list表, 一张detail表(再傻点建一个大表,col把每个属性都列进来),每次你查询的时候都得join两张表,表非常巨大的时候,join就会效率很低,这种数据你就得考虑nosql, 每个document描述一个物品,属性就是document的field,都可以自定义,查询修改都方便的多。

评分

参与人数 1积分 +4 收起 理由
K.U.Double-D + 4 我很赞同

查看全部评分

发表于 2019-9-11 21:49 |显示全部楼层
此文章由 sun2012 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 sun2012 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很多地方只能用sql
头像被屏蔽

禁止发言

发表于 2019-9-11 21:56 来自手机 |显示全部楼层
此文章由 gary.smith 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gary.smith 所有!转贴必须注明作者、出处和本声明,并保持内容完整
joe7752 发表于 2019-9-10 15:36
其实很简单,nosql 填补了sql不擅长的部分,举个例子,你有一堆物品,每个物品的属性都不一样,在sql里面你 ...

你把每个document当一个table ,不就可以用SQL 了。我从来不觉得no SQL 有什么好处,操作部规范,非常难写
Advertisement
Advertisement

发表于 2019-9-11 22:17 |显示全部楼层
此文章由 joe7752 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joe7752 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gary.smith 发表于 2019-9-11 21:56
你把每个document当一个table ,不就可以用SQL 了。我从来不觉得no SQL 有什么好处,操作部规范,非常难 ...

那如果你有100万个物品,你是不是在SQL数据库建100万张表?Document更像sql里面的record, collection才有点像sql里面的表, nosql擅长存储非结构化的数据,比如每个物品的属性里面又嵌套属性,多层嵌套,sql的表格非常难以设计,而且最终sql的操作效率也很低。nosql 用json操作数据,其实和sql比也没复杂多少,甚至还简单一点,就是要熟悉一下。

发表于 2019-9-13 15:57 来自手机 |显示全部楼层
此文章由 stevenwang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenwang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Mongodb 的 replica set 和Shard很不错,其他产品的类似功能可能要花很多钱或者配置起来很复杂。
头像被屏蔽

禁止发言

发表于 2019-9-13 19:32 |显示全部楼层
此文章由 nis5 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nis5 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gary.smith 发表于 2019-9-11 21:56
你把每个document当一个table ,不就可以用SQL 了。我从来不觉得no SQL 有什么好处,操作部规范,非常难 ...

没想到老唐还真是搞软件的
头像被屏蔽

禁止发言

发表于 2019-9-13 19:32 |显示全部楼层
此文章由 nis5 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nis5 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gary.smith 发表于 2019-9-11 21:56
你把每个document当一个table ,不就可以用SQL 了。我从来不觉得no SQL 有什么好处,操作部规范,非常难 ...

没想到老唐还真是搞软件的
头像被屏蔽

禁止发言

发表于 2019-9-13 19:32 |显示全部楼层
此文章由 nis5 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nis5 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gary.smith 发表于 2019-9-11 21:56
你把每个document当一个table ,不就可以用SQL 了。我从来不觉得no SQL 有什么好处,操作部规范,非常难 ...

没想到老唐还真是搞软件的
Advertisement
Advertisement

发表于 2019-9-13 20:09 来自手机 |显示全部楼层
此文章由 weisong8 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 weisong8 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我不管这么多了,我这辈子就只吃sql这碗饭了,别的也不想学了。

发表于 2019-9-14 04:14 |显示全部楼层
此文章由 xxmplus 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 xxmplus 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果你觉得nosql没用,大多数情况是因为你面对的数据量太小了。
头像被屏蔽

禁止发言

发表于 2019-9-14 07:51 来自手机 |显示全部楼层
此文章由 gary.smith 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gary.smith 所有!转贴必须注明作者、出处和本声明,并保持内容完整
nis5 发表于 2019-9-13 11:32
没想到老唐还真是搞软件的

我做数据库的时候每天熬夜,做那个破mis,当年也号称sql专家,当过北大青鸟教员,培训过无数数据库管理人员,专解决国内企业疑难报表。也看明白软件这破玩意不是人干的,坚决转了行。

出国后做软件对我来说是labor工,和大家干餐馆一个意思,找不到专业工作的时候只好干data science,顺便做做大数据,no SQL还是懂得。

楼上那个人举得例子不合适,10000件物品,你还要no SQL 建document,怎么读?sql一条语句就出来了,no SQL 我没找到合适方法。nosql属于某些人拍脑壳,头脑发热的东西,现在回过味来,发现还不如传统数据库好使

发表于 2019-9-14 08:28 |显示全部楼层
此文章由 kksp 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kksp 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我倒是觉得最大的区别是在于一个是strong typed一个不是,sql如果你想,你也可以忽略所有normaization把表建成非关系形,而且sql server现在也支持json 操作,没有用其他的估计其他sql也应该支持了
但是no sql不需要定义schema,数据有不同的field也没关系,直接插入就是,sql呢?不好意思先改数据库把field加好再回来吧

至于到底哪种好,就好js一样,一个object你随意增加prop,但是因为没有type,也就是没有schema,就像楼主说的,到了后期,有时候调试debug就困难了,所以慢慢又弄了一个type script出来,compile time就能发现问题了
头像被屏蔽

禁止发言

发表于 2019-9-14 09:09 |显示全部楼层
此文章由 gary.smith 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gary.smith 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kksp 发表于 2019-9-14 00:28
我倒是觉得最大的区别是在于一个是strong typed一个不是,sql如果你想,你也可以忽略所有normaization把表 ...

你要是自己随便写写没问题,但工程的东西必须是规范的。JS,python和matlab等等,随意在结构里加属性,调试代码的时候根本不知道这个属性是从哪里来的,变量也没有类型,维护者的灾难。Fortran还算是结构化的语言,很多程序在科学计算界都没法维护了。script语言这么流行,将来这些垃圾怎么清除,是个大问题。
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2019-9-14 17:00 |显示全部楼层
此文章由 nis5 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nis5 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gary.smith 发表于 2019-9-14 07:51
我做数据库的时候每天熬夜,做那个破mis,当年也号称sql专家,当过北大青鸟教员,培训过无数数据库管理人 ...

的确,在这里做软件就和餐馆洗碗和做清洁打扫卫生没区别。而且还不是做餐馆老板或者清洁老板。
头像被屏蔽

禁止发言

发表于 2019-9-14 17:02 |显示全部楼层
此文章由 nis5 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nis5 所有!转贴必须注明作者、出处和本声明,并保持内容完整
gary.smith 发表于 2019-9-14 09:09
你要是自己随便写写没问题,但工程的东西必须是规范的。JS,python和matlab等等,随意在结构里加属性,调 ...

作为一个洗碗工,谁关心后面那个整理碗的是不是好整理阿。我只管把我的碗洗了,拿到我该拿的就行了。

发表于 2019-9-14 21:00 |显示全部楼层
此文章由 daniel@mel 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 daniel@mel 所有!转贴必须注明作者、出处和本声明,并保持内容完整
nis5 发表于 2019-9-14 17:02
作为一个洗碗工,谁关心后面那个整理碗的是不是好整理阿。我只管把我的碗洗了,拿到我该拿的就行了。 ...

你确定在澳洲写过软件也洗过碗?我感觉你俩像说相声的  

发表于 2019-9-14 21:48 |显示全部楼层
此文章由 sun2012 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 sun2012 所有!转贴必须注明作者、出处和本声明,并保持内容完整
现在IT技术发展太快,以前的script运行好多年都好好的,

现在script种类太多,加上变化太快,运行的好好的,但隔不了多久可能就不能用了,但写script的人说不定已经不在这里工作了,然后就debug或者再来一遍

发表于 2019-9-14 22:32 |显示全部楼层
此文章由 daniel@mel 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 daniel@mel 所有!转贴必须注明作者、出处和本声明,并保持内容完整
sun2012 发表于 2019-9-14 21:48
现在IT技术发展太快,以前的script运行好多年都好好的,

现在script种类太多,加上变化太快,运行的好好的 ...

没看懂,变化快的话变更管理也要跟上,要不就是天天搽屁股,和用不用script没什么关系吧, c++一样出问题。
netflix以前都是java写的,现在全面转向script,你在netflix上按的每个按钮后面都有一堆python scripts在工作。
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2019-9-15 10:39 |显示全部楼层
此文章由 nis5 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nis5 所有!转贴必须注明作者、出处和本声明,并保持内容完整
daniel@mel 发表于 2019-9-14 21:00
你确定在澳洲写过软件也洗过碗?我感觉你俩像说相声的

他是写软件的,我是洗碗的。我俩凑一块,刚好。

发表于 2019-9-17 01:06 |显示全部楼层
此文章由 gabrielc 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gabrielc 所有!转贴必须注明作者、出处和本声明,并保持内容完整
nosql 对reatcive programming更友善,springboot环境更多开源项目

发表于 2019-9-17 08:11 |显示全部楼层
此文章由 bluehenry 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bluehenry 所有!转贴必须注明作者、出处和本声明,并保持内容完整
sql和nosql的的使用场景不一样,sql面向关系型数据,nosql面向非关系型数据。比如就存个json文件,nosql就很适合。

发表于 2019-9-17 15:55 |显示全部楼层
此文章由 joe7752 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joe7752 所有!转贴必须注明作者、出处和本声明,并保持内容完整
看来真正有nosql经验的人不多,连mongoDB document都搞不清楚是什么的就别说自己懂哪怕是一些nosql了

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部