|
1.您在工作过程中是否使用过内存数据库?您对内存数据库有哪些使用心得和印象?
答:用过。而且还用过不少。内存数据库就是在内存中开辟出来一大块空间。把数据存放在里面。或者说把数据库安装在内存中而不是安装在磁盘上。特点就是快啊。因为是内存,内存的速度是磁盘的1万倍。所以在磁盘上执行10000秒(3个小时的),在内存中1秒或者几秒就完成了。这个效率是非常高的。内存数据库有关系型的也有非关系型的。比如下面说的timesten,也有非关系型的比如memcache,有可以持久化的比如redis,也有不能持久化的,memcache。
我还要说有一种既然内存数据库是把数据库运行的时候加载到内存里面,那么按照这个理论,韩国把数据全部加载到内存里面的数据库也不是叫内存数据库呢?应该不是,有区别的。比如Oracle和MySQL都有内存表的概念,我们可以将表都加载到内存中这样性能上差不多了,但是只是内存表不是内存库。
2.SAP HANA和Oracle TimesTen是内存数据库的两大巨头,您认为它们各自都有哪些优缺点,两者哪个更胜一筹?
答:hana听说过,没用过。听说亚马逊就是用的这个,非常好。Oracle的 timesten,我们通常叫他TT。TT我用过因为是甲骨文自己的所以和自己的Oracle结合的很好。而且在Oracle中怎么用那么在TT中就怎么用。没用区别使得移植起来不用改代码就行了。然后得到的性能提升是很大的,而且还是关系型数据库对事物的支持也很好。据说上证交易所用过,平安科技也用过。缺点就是收费啊。TT我用的时候想让他承载更多的DML,然后定期和底层的Oracle同步,这样琐碎的dml就变成批量的作业了,这样用来减少redo和undo,从而减轻对Oracle的压力。但是后来发现没成功,内存的变化基本都同步到底层Oracle了。我希望的是定时而不是实时。也不知道是不是我设置问题。
3.现在,内存计算的势头不错,您是否看好内存数据库的未来?内存数据库会碾压传统数据库吗?
答:完全看好,现在的互联网没有不用内存数据库的。没有哪家是不用的。内存数据库会对传统的数据库有一定的影响。但是全部都是内存那成本是很高的。1T的磁盘和1T的内存不能比较的。而且一个机器磁盘不够可以加磁盘阵列。但是内存不够了,再加也要看内存槽有没有。内存没磁盘那么好扩展。除非是spark这样的结合yarn,分布式内存管理。
而传统数据库只要使用SSD或者闪存就可以缩短与内存数据库的性能差距,而价格也没内存那么贵。这样就不必全内存数据库了。
4.如果要您推荐几款内存数据库,您会推荐什么?SAP HANA、IBM SolidDB、Oracle TimesTen或者其他
答:关系型的 我推荐TT 和hana(没用过,但是亚马逊用了,用了都说好应该好)、非关系型的我推荐redis(可以集群可以持久化的场景),也推荐memcache 有些状态频繁读写,不需要持久化,单机也可以应付的场景。没有最好的,只有最合适的。 |
|