免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 34144 | 回复: 18

[其他] SQL vs NoSQL:如何选择? [复制链接]

论坛徽章:
146
2015年亚洲杯之日本
日期:2015-04-28 13:32:012015年亚洲杯之朝鲜
日期:2015-05-06 10:16:442015年亚洲杯之日本
日期:2015-05-06 10:21:342015年亚洲杯纪念徽章
日期:2015-05-13 17:16:442015亚冠之北京国安
日期:2015-05-13 17:18:292015亚冠之鹿岛鹿角
日期:2015-05-13 17:19:062015亚冠之德黑兰石油
日期:2015-05-27 16:47:402015亚冠之塔什干棉农
日期:2015-05-28 15:24:122015亚冠之卡尔希纳萨夫
日期:2015-06-01 13:52:392015亚冠之柏斯波利斯
日期:2015-06-04 17:37:292015亚冠之阿尔纳斯尔
日期:2015-06-16 11:31:202015亚冠之塔什干火车头
日期:2015-06-23 10:12:33
发表于 2015-11-26 18:19 |显示全部楼层

获奖详情:http://bbs.chinaunix.net/thread-4235351-1-1.html

话题背景:

•VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域。
•Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时。

SQL 数据库是一个理想的项目,确定好了需求和健壮的数据的完整性是至关重要的。NoSQL 数据库是无关理想,不确定的或者不断变化的数据需求 ,在速度和可伸缩性上更重要。
那么,哪个会是更优的选择呢?



讨论话题:
1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL NoSQL以外,更有效的数据库。)
2.若同时应用SQL NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?
3.第一次发技术贴,如没有提到的问题,还请各位帮忙补充。


讨论时间:2015年11月26日—12月26日


奖品设置:
活动结束后,我们将选取5位讨论精彩的同学,各送一本《SQL Server性能调优实战》。



作者:陈畅亮    吴一晴   
丛书名:数据库技术丛书
出版社:机械工业出版社
ISBN:9787111517023
上架时间:2015-10-22
开本:16开
版次:1-1


内容简介:
书中首先简要介绍了SQL Server与性能实践相关的一些基础语法及配置信息.提出与数据库性能相关的几个概要信息,再根据SQL Server数据的内部实现原理讲解如何调整和优化SQL Server数据库实例的配置;接着介绍SQL Server数据库存储引擎的语句优化,执行计划内部原理以及索引等综合因囊分析如何优化数据库语句,保证数据库的稳定性及效率;最后从SQL Server的数据库性能监控及高可用性解决方案,提出性能监控及设计层面的优化。


样章试读: 1-3Z.pdf (2.09 MB, 下载次数: 49)

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
发表于 2015-11-26 18:36 来自手机 |显示全部楼层
我还是那观点,没有绝对的好;比如当年精简指令集和复杂指令集的争执,现代cpu其实是这两者的合集,随着更成熟的技术工艺,以后很难区分到底是哪个更有优势;数据库也会有其自身的技术进化路线和方向,目前看来传统的数据库很难被替换掉,但新的需求也会让那种nosql继续发展,而且我个人认为新的nosql 只有以某种方式继承了sql 的应用需求,那么sql 才会溶进nosql 中,或者彼此融合产生一种新的数据库。技术的进化总是这样,总有一段新旧相互渗透的历史,不过我觉得真正的生命力还是源于自由开放的环境。

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
发表于 2015-11-26 20:01 |显示全部楼层
1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL 和NoSQL以外,更有效的数据库。)
没有标准,选择太多
2.若同时应用SQL 和 NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?
sql和nosql两者应用场景不一样,有时候真的很难直接比较
3.第一次发技术贴,如没有提到的问题,还请各位帮忙补充。
最近在弄mongodb,觉得mongodb的应用场景跟sql有区别,所以很难说mongodb的优点或缺点
当遇到适合nosql的场景,那么sql肯定会差一点
当遇到适合sql的场景,那么nosql肯定会差一点

个人见解,没有一定哪个可以绝对取代哪个,以前以为nosql是多余的,当使用上nosql之后,发现确实有一些场景需要nosql

论坛徽章:
323
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2015-11-27 09:29 |显示全部楼层
又不矛盾,两个同时用

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
发表于 2015-11-27 09:36 |显示全部楼层
1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL和NoSQL以外,更有效的数据库。)
单纯谈数据库的并发写入性能实际上意义不大。
从单机性能来判断,各种关系数据库和各种NoSQL数据库都部署在单服务器的情况,并发写入性能最好的肯定是内存型数据库,因为其写入数据库就是写入内存,而不是写入磁盘,速度显然极快。
典型的代表包括:
1)Redis:开源内存键值NoSQL数据库
2)FastDB:开源内存实时关系数据库
3)Memcached:开源分布式内存对象缓存系统(可视为键值型NoSQL数据库)
4)MemSQL:开源内存关系数据库
5)H2:开源内存关系数据库
6)TimesTen:Oracle公司商业级的内存关系数据库
7)eXtremeDB:McObject公司商业级的内存关系数据库
8)Altibase:Altibase公司商业级的内存关系数据库
......

2.若同时应用SQL和NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?
关系数据库和NoSQL数据库各有其适用的应用场景,混合适用可以充分发挥两者的优点。
比如,假设网页上有一个经常变化的TOP 10排名列表,对于这个数据的存储,在面对海量用户的场景下,选择关系数据库显然不怎么适合,而选择Redis之类的内存键值数据库来存储就很合适,集群也易于实现。
关系数据库同样有很多NoSQL数据库不可取代的优点。关系模型是万事万物之间一种随处可见的、广泛存在的现象的抽象,具有很强的适用性。对于业务开发,如果业务之间的联系是关系模型,那么用关系数据库是很适合的。

论坛徽章:
4
IT运维版块每日发帖之星
日期:2015-08-04 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:002015亚冠之阿尔艾因
日期:2015-11-08 10:27:01CU十四周年纪念徽章
日期:2020-11-05 14:10:23
发表于 2015-11-27 10:24 |显示全部楼层
1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL 和NoSQL以外,更有效的数据库。)
  应用场景不一样,简单的比较是没有太大意义的。选择合适的方案处理合适的场景,最适用的就是最好的。

  关系数据库就不多说了,是通用的解决方案。

  頻繁的写入操作,相对较少的读取信息的操作(如网站访问计数器),应该使用基于内存的key/value存储系统(如redis),或者是具备本地更新特性的文档存储系统(如MongoDB)

  海量数据(如数据仓库需要分析的数据)适合存储在结构松散,分布式的文件系统中,如Hadoop

  存储二进制文件(如mp3或pdf文档)并能直接为用户提供下载功能,可以使用Amazon S3

  临时性的数据(如网站的session,缓存HTML页面信息等)适合存储在Memcache中

  如果希望数据具备高可用性,并能够将数据的丢失的风险降到最低,同时整个系统具备线性扩展能力,可以考虑Cassandra和HBase

2.若同时应用SQL 和 NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?

根据业务场景选择合适的方案,SQL和NoSQL都可以选择,举个例子,一个网站可能用到多种数据库:
MySQL可以用存储敏感的数据,比如用户的资料,交易的信息等
MongoDB用于存储大量的,相对不敏感的数据,如博客文章的内容,文章的访问次数等
Amazon S3用于存储用户上传的文档,图片,音乐等数据
Memcache用于存储临时性的信息,比如缓存HTML页面信息
我们不要把眼光局限在某一产品上,最适用的才是最好的。

论坛徽章:
18
2015亚冠之阿尔希拉尔
日期:2015-06-02 09:56:10数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-03-19 06:20:00数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-12-25 06:20:35数据库技术版块每日发帖之星
日期:2015-09-12 06:20:00数据库技术版块每日发帖之星
日期:2015-09-11 06:20:00ChinaUnix专家徽章
日期:2015-06-30 16:29:48ChinaUnix专家徽章
日期:2015-06-30 16:29:342015年中国系统架构师大会
日期:2015-06-29 16:11:28
发表于 2015-11-27 10:59 |显示全部楼层
回复 1# 王楠w_n


    1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL 和NoSQL以外,更有效的数据库。)
对于数据库来说,主要看业务的需求
如果你需要批量的写入 你就需要非关系型数据库nosql 例如 mogodb hbase
如果你对一直性的要求高 你就选择 关系型数据库  oracle
如果你的是网页累的操作 需要一致性,但是可以丢失一点的话 你可以选择mysql postgressql
如果你数据不重要 但是读特别多  你就需要内存数据库 redis memcache等
其实数据库没有好坏  只有适合  当你选择数据库的时候看你的业务

2.若同时应用SQL 和 NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?
其实现在对比sql nosql 的文章特别多看下就可以了  
cap  理论目前中国的技术实力还没有打破  当写把扩展性能提升上去  你必然需要损失你的一致性。
so  看业务吧   你的数据可以少部分的丢失的时候你才是选择 nosql 产品的时候  
其实数据库产品特别多  当你了解数据库产品的时候   才是去选择产品的时候
3.第一次发技术贴,如没有提到的问题,还请各位帮忙补充。
支持  楠妹子   

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
发表于 2015-11-28 11:17 |显示全部楼层
1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL 和NoSQL以外,更有效的数据库。)
  单以并发写入而论,肯定是nosql胜出。
  基本所有的nosql都实现了事件驱动的接口,适合高并发
  而mysql.pg,oracle这些还停留在传统的进程,线程接口。
  不过,一般应用的高性能写入,都会考虑到连接池/缓存+批量写的策略,并发不会在数据库这个环节解决。
  

2.若同时应用SQL 和 NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?
  引入nosql.无疑会增加系统的复杂度。优点是适合分布式扩展。
  nosql无法解决复杂的业务逻辑还是硬伤,难以独挡一面,还是需要配合sql使用。

  现在前端技术mvc转向mvvm.尤其适合插入nosql,实现前后端读写分离。
  前端nginx_lua+redis或者php等+redis。 解决数据高性能动态更新.web框架可以变得很轻量。因为没有了业务逻辑。
   后端处理可以用mysql,pg等。 解决数据生成的复杂逻辑。

  在大数据分析领域,sql和nosql各有千秋。估计会趋于统一。



ps.话说voltdb,自从不免费了。。。关注度就大不如前了。。。

论坛徽章:
10
数据库技术版块每日发帖之星
日期:2015-06-14 22:20:00数据库技术版块每日发帖之星
日期:2016-03-10 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-09 06:20:00IT运维版块每日发帖之星
日期:2015-11-02 06:20:00IT运维版块每日发帖之星
日期:2015-07-13 22:59:28IT运维版块每日发帖之星
日期:2015-06-23 22:20:00程序设计版块每日发帖之星
日期:2015-06-21 22:20:00每日论坛发贴之星
日期:2015-06-14 22:20:00IT运维版块每日发帖之星
日期:2016-08-02 06:20:00
发表于 2015-11-28 17:19 |显示全部楼层
1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL 和NoSQL以外,更有效的数据库。)
2.若同时应用SQL 和 NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?
3.第一次发技术贴,如没有提到的问题,还请各位帮忙补充。

论坛徽章:
15
2015七夕节徽章
日期:2015-08-21 11:06:172017金鸡报晓
日期:2017-01-10 15:19:56极客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之新疆
日期:2016-01-25 14:01:34IT运维版块每周发帖之星
日期:2016-01-07 23:04:26数据库技术版块每日发帖之星
日期:2016-01-03 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2015-11-28 20:19 |显示全部楼层
1.数据库并发写入性能方面,哪个是最优的选择?(可举例说明,也可除SQL 和NoSQL以外,更有效的数据库。)
   说句实话,并发写入并不是SQL和NoSQL的比较,抛开存储介质方面的优化,就磁盘数据库而言,这类比较更多的是存储引擎的比较,比如LSM之类的存储引擎对插入的性能就比较好,类似数据库的堆表,而索引组织表干这个或就比较费劲,NoSQL和SQL其实都是相互借鉴,同时舍弃部分特性,只有舍才会有得,没有一个数据库能包打天下,而是看场景看业务模型。

2.若同时应用SQL 和 NoSQL同时应用两者在网页应用程序的扩展性方面能带来哪些好处?
这个问题没怎么看懂,我的理解的网页展示方面的复杂逻辑嵌套非结构化数据用NoSQL保存比较好,而SQL适合有(跨行)事务的场景,同时要求数据不会特别大并且结构比较清晰。

3.第一次发技术贴,如没有提到的问题,还请各位帮忙补充。
其实NoSQL就是砍掉SQL中的复杂特性简化后
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP