欢迎关注公众号:吴先生的伊甸园
典型的磁盘数据库就是最常用的 Oracle,Mysql等。典型的内存数据库如 Redis。
这俩种数据库的比较如下:
传统磁盘数据库的优点
– 传统数据库的ACID机制成熟、可靠;
– 提供强大的数据定义语言(DDL)及数据操作语言(DML),提供 SQL 支持;
– 提供一定的主动机制(如触发器,Trigger)和后台数据处理能力(如存 储过程,Stored Procedure)。
传统磁盘数据库的主要缺陷
– 占用、消耗的系统资源较多;
– 数据存取的速度慢;
– 数据存取时间不一致且难以预测
内存数据库的突出优势
– 存取速度快速、一致
– 存取时间易于预测
– 易于定制数据存取方式
内存数据库的主要特点
– 为了降低MMDB的内存开销,MMDB往往简化了对复杂事务处理的支持,如MMDB一般不提供事务的undo机制,代之以“补偿事务”的方式来实现事务处理的原子性和一致性。
– 由于MMDB中的数据库“主拷贝”在内存中,因此,MMDB对系统的故障恢复提出了更高的要求,实现起来难度更大。
– 通用性不强,由于不同的实时应用系统中的数据对象不同,对数据库的 访问要求及访问方式不同。为了提高数据库的实时性,在设计MMDB时,需要根据应用特点,采取一些针对性的措施。因此,设计上往往有一定的特殊性。
此外,我们需要理解的是:
磁盘数据库会花费更多的心思在于减少磁盘 I/O ,优化出更高效的缓存技术。因为磁盘的读写速度过慢,所以优化策略主要在于磁盘和内存数据交换上。包括各式各样的索引,数据缓存等手段都是为了上述目的。
对于内存数据库,更多的是减少硬盘和 cpu 之间的速度不平衡问题,更多的思考如何提高数据库的存储时间。
传统磁盘数据库系统的数据组织、访问方法、查询处理算法的设计都针对减少磁盘访问次数与有效利用盘存储空间,甚至牺牲CPU时间来减少I/O次数(如查询处理有大量中间数据),而内存数据库的设计则主要考虑如何有效地利用CPU的时间和内存空间。 refer:https://wenku.baidu.com/view/43018b41b307e87101f69621
最后再贴一张图,对比一下俩类数据库的不同
网友评论