oracle数据库与MillionsDB内存数据库的性能比较

oracle数据库与MillionsDB内存数据库的性能比较,第1张

1.传统磁盘数据库的基本访问模式。为了提高性能在产品和应用之间会加入缓存的内存区域。传统数据库性能瓶颈主要出现在一个是内存不够,一个IO读写效率太低。oracle 体系结构中,数据库实例的系统全局区SGA(System global area) 是核心的组成部分,它是一组共享的内存结构,里面存储了oracle数据库实例(instance)的数据和控制文件信息。SGA主要包括以下几部分:共享池,数据缓冲区,大型池,Java池,日志缓冲区。如果每次执行一个 *** 作时,Oracle都必须从磁盘读取所有数据块并在改变它之后又必须把每一块写入磁盘,显然效率会非常低。数据缓冲区存放需要经常访问的数据,供所有用户使用。修改数据时,首先从数据文件中取出数据,存储在数据缓冲区中,修改/插入数据也存储在缓冲区中,commit或DBWR进程的其他条件引发时,数据被写入数据文件。而SGA的内存是极其有限的,所以SGA是影响Oracle数据库性能的重要因素.

而MillionsDB内存数据库,拥有大量的内存,在数据库启动过程中把数据从磁盘上加载到内存中,而对数据进行 *** 作也是数据是先不存储到磁盘上(Disk)(数据 *** 作会有相应的日志保存),存储在内存中,MVCC:(Multi Version Concurrency Control)用来控制内存数据的一致性,而后台savepoint定时的把内存中数据的修改从内存中写入磁盘。内存数据库并不是实时的把数据更新到磁盘上,这样就减少很多磁盘的IO *** 作,而数据有加载到内存中,内存存储读取的性能远高于磁盘存储。读写 *** 作都针对内存进行,不再直接与磁盘数据库交互,相当于是一种异步 *** 作,显然,异步 *** 作使得前端的写 *** 作显得更快。虽然oracle的读写 *** 作也有针对内存进行,但由于SGA的内存有限,遇到大数据量时,性能相比内存数据库就相差很远。

MillionsDB支持与多种数据库对接.如Oracle,DB2,Sybase,MySQL,SQL Server

MillionsDB 独特的内存管理算法,使系统运行不产生内存碎片.避免了内存的动态申请或释放导致的系统运算资源开销.从而保障了数据平台的整体运行效率.

MillionsDB 不懂,不过对于HANA和oracle来讲,相对来说HANA会更快一点,因为内存更大,可以存储的数量更多,而oracle,不能说是完全的内存数据库,其中有一部分还是速度比较快的硬盘,只是传输技术更新,所以速度有所提升。

数据库性能优化主要包括以下几个方面:

1、sql语句的执行计划是否正常;

2、减少应用和数据库的交互次数、同一个sql语句的执行次数;

3、数据库实体的碎片的整理;

4、减少表之间的关联,特别对于批量数据处理,尽量单表查询数据,统一在内存中进行逻辑处理,减少数据库压力;

5、对访问频繁的数据,充分利用数据库cache和应用的缓存;

6、数据量比较大的,在设计过程中,为了减少其他表的关联,增加一些冗余字段,提高查询性能。

在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。

系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9638878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存