很多观点都在排斥数据库,但就我参与过的所有项目,上线后的运营维护期间,都会有无穷无尽的统计报表和数据挖掘的需求,没有了数据库,这些事情该从何下手去做?
是我理解的不对还是有更好的方法,还望各位能指点一下方向。
不要浮燥。几个人,加上OO,加上OO它爹,OO它爷爷,都整不死DB。
看见新东西,别太激动。过去多少新东西,转眼间就沉舟侧畔了。
我从来不相信运用一种技术就能解决这个世界的所有问题。
至于学Java的要拿Java去打倒DB,那Java的创始人们也没办法。
但是没有道理诶。
数据库不可能亡的噢~~~~
没了数据库,怎么做东西啊~?
[该贴被byduke于2009-04-17 01:17修改过]
我实际试过Oracle多表连接查询的速度远远比单表慢,即使所有数据都缓存在内存里。OO和持久层的连接开销应该更大,除非你认为Oracle做查询优化的人都是弱智,否则即使有缓存也不会快。
分布也不是万能的,最起码多个服务器之间的缓存同步就会造成很大开销,性能并不能线形增长。
不要总认为能用廉价硬件组成分布系统就是好的,机器越多故障率也越高。一台Unix服务器价格几十倍于Windows服务器,性能远远达不到Windows服务器的几十倍,为什么还有人用,总不会这些企业也都是弱智吧。
不要认为用Unix都是看中性能。举个简单例子,有些应用Windows服务器性能足够,用Unix的唯一理由就是不能忍受Windows几乎每月例行打补丁造成的停机。
顺便问一下,持久层缓存数据采用对象,占用内存应该比数据库缓存更大,对于100G以上内存都不能达到性能要求的Oracle数据库,你打算如何通过缓存达到比SQL更好的性能?
偶的一点观点,大家见笑,多包涵多指正:
1. DB绝不只是存数据的玩意,真正存放数据的是文件系统,再往底层了说是磁盘系统,DB只是一个中间层,SQL和一些过程是DB向上层提供的接口,往下面会调用OS提供的接口
2. J2EE是在DB上又多放了一个层,但是这个层没做好,大家老想越层直接用DB。分层架构最忌讳越层了,这点DB做得很好,SQL就全搞定了基本不用考虑OS。
3. 目前的趋势大概是在J2EE上再加个层,大概就是SOA,最好是REST SOA, 大多数人以后就调用几个URL就可以做应用了,URL下面可能是极其恶心的系统也没关系了,大多数人的世界可以清净了。
4. 但是原来的层还存在的,每个层都有相应的程序员在搞,很恶心但还要搞下去,越层肯定还会存在。