大家怎么看noSQL?
c#吧
全部回复
仅看楼主
level 9
刚刚才做了几个有关于SQL的项目,关系模型还在脑子没有建立的清楚,结果就听到很多人在讨论noSQL的问题了。
感觉很多应用noSQL的都是自己写的noSQL解决方案。而且都是和mySQL结合。
大家觉得noSQL未来前景如何。以后它能不能独当一面?
2014年01月05日 09点01分 1
level 9
……[汗]
2014年01月05日 10点01分 2
level 11
nosql 和 关系型数据库 都有各自的优势,当高并发 大数据的时候使用Nosql当然好,但是业务逻辑比较复杂的时候nosql无法表达出关系型数据库的表与表的复杂关系,所以 各司其职。所以独当一面个人认为还是有压力的。
2014年01月05日 11点01分 3
level 13
[呼~] 打开方式不对?
2014年01月05日 12点01分 4
哪有打开方式不对
2014年01月05日 12点01分
level 15
不了解啊,EAV和它有关系么?[疑问]
2014年01月05日 13点01分 5
level 15
noSQL 并不是来取代 关系型数据库的。
主要是 关系型数据库, 在某些情况下, 性能支持不下去了。
一般来说, 你只需要了解。
哪些业务, 需要使用 关系型数据库。
哪些业务, 使用 nosql 数据库会更好一些。
例如你要给某公司, 开发一套 库存/物流/销售 系统的。
那么这种情况下, 考虑到这类系统的需求是 :
数据库事务一致性需求: 不能 我 A 商品出库了, 结果 数据没有进到物流的系统里面。
数据库的写实时性和读实时性需求: 不能我 A 商品全部出库了,结果你从仓库里面,还能查询到。
对复杂的SQL查询,特别是多表关联查询的需求: 这个各种复杂的 进销存报表什么的...
那么上面这种情况下, 使用 关系型数据库, 就很方便。
----------
又例如,你要开发一套 某网站的 贴吧
同一时刻, 很多人发帖, 很多人回帖.
那么这种情况下, 考虑到这类系统的需求:
没有什么数据库事务一致性需求: 就是发帖/回帖,
也没有什么写实时性和读实时性需求, 我帖子提交了, 可能几秒后才能看到, 这个也能接受。
就发帖的, 不需要什么多表关联的处理。
那么上面这中情况下, 使用 nosql , 就很方便。
----------
我就简单的玩过一下 MongoDB
和 关系型数据库 来对比的话, 就是 可扩展性比较好。
例如,你新开了一家小公司, 初期业务量不大的情况下。
你找台普通的计算机, 安装 MongoDB, 跑跑业务没问题。
你找台普通的计算机, 安装 SQL Server / 或者 MySQL, 跑跑业务也没问题。
当你业务规模大了。 一台机器抗不住了。
使用 MongoDB 的,
你再找台普通的计算机, 安装 MongoDB, 和原先那台,组成一个 2个分片, 把数据分摊到2台计算机上去处理。
使用 SQL Server / 或者 MySQL 的
1. 要花钱升级电脑了。
2. 买台普通的电脑, 建分区表, 把数据分区放在2台机器上面。数据库可以一台主,一台备。
----------
当你业务规模更大了。两台机器抗不住了, 需要四台计算机了。
使用 MongoDB 的,
你再找2台普通的计算机, 安装 MongoDB, 和原先那2台,组成一个 4个分片的, 把数据分摊到4台计算机上去处理。
使用 SQL Server / 或者 MySQL 的
1. 是要 花钱升级电脑了。
2. 买2台普通的电脑, 建分区表, 把数据分区放在4台机器上面。 Oracle 数据库的话, 倒是可以用 4 台 机器,折腾 RAC 来玩玩。 其他数据库不熟, 不知道有没有这样的功能了。
----------
当你业务规模更大了。四台机器抗不住了, 需要八台计算机了。
使用 MongoDB 的,
你再找4台普通的计算机, 安装 MongoDB, 和原先那4台,组成一个 8个分片的, 把数据分摊到8台计算机上去处理。
使用 SQL Server / 或者 MySQL 的
1. 是要 花钱升级电脑了。
2. 买4台普通的电脑, 建分区表, 把数据分区放在8台机器上面。
----------
对于 MongoDB,
增加一个分片的计算机。 就是简单的一台机器, 安装好 MongoDB。
然后加到局域网里面。
然后再 mongos 那里, 输入一句命令就可以了, 后台会自动平均分摊数据到不同的机器上面去的。
而对于 关系型的分区表。
那不是一般的折腾啊。
一个未分区的普通表, 要拆成分区表, 这个有难度的啊...
----------
关于 C# 开发 关系型 数据库 与 MongoDB
这个我写了点例子代码, 结果是 用 Linq 的话, 简单的单表查询处理, 你感觉不出你访问的是 MongoDB, 还是关系型数据库。 [勉强]
https://tieba.baidu.com/p/2759435626
2014年01月06日 09点01分 6
mssqlserver也有主从复制,也是可以分库的,芒果db相当爽,db4o我用的更加舒服,面对对象数据库。【微笑】
2014年01月06日 09点01分
回复 wrc488 :怎么说“面向对象数据库”?
2014年01月06日 11点01分
@清洁终点工 :简单说说,就是我们编程的对象,自定义的实体等在编程语言里的对象直接存储到数据库,不用拆分成关系。直接存储对象。而且跨平台【微笑】
2014年01月06日 13点01分
1