① 什么样的内存数据库是好的内存数据库
查询速度快,支持结构丰富,比如redis、数蚕内存数据库
支持SQL,数据类型丰富,比如MySQL memory存储引擎,数蚕内存数据库,SQL Server 内存存储,SAP HANA。
② 内存数据库与hadoop谁更强
TestDFSIO用于测试HDFS的IO性能,使用一个MapRece作业来并发地执行读写操作,每个map任务用于读或写每个文件,map的输出用于收集与处理文件相关的统计信息,rece用于累积统计信息,并产生summary。
③ 内存数据库主流的有哪些,并给出各自特点!
内存数据库从范型上可以分为关系型内存数据库和键值型内存数据库。
在实际应用中内存数据库主要是配合oracle或mysql等大型关系数据库使用,关注性能。
作用类似于缓存,并不注重数据完整性和数据一致性。
基于键值型的内存数据库比关系型更加易于使用,性能和可扩展性更好,因此在应用上比关系型的内存数据库使用更多。
比较FastDB、Memcached和Redis主流内存数据库的功能特性。
FastDB的特点包括如下方面:
1、FastDB不支持client-server架构因而所有使用FastDB的应用程序必须运行在同一主机上;
2、fastdb假定整个数据库存在于RAM中,并且依据这个假定优化了查询算法和接口。
3、fastdb没有数据库缓冲管理开销,不需要在数据库文件和缓冲池之间传输数据。
4、整个fastdb的搜索算法和结构是建立在假定所有的数据都存在于内存中的,因此数据换出的效率不会很高。
5、Fastdb支持事务、在线备份以及系统崩溃后的自动恢复。
6、fastdb是一个面向应用的数据库,数据库表通过应用程序的类信息来构造。
FastDB不能支持Java API接口,这使得在本应用下不适合使用FastDB。
Memcached
Memcached是一种基于Key-Value开源缓存服务器系统,主要用做数据库的数据高速缓冲,并不能完全称为数据库。
memcached的API使用三十二位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。由于 memcached通常只是当作缓存系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程序更新memcached内的资料。
memcached具有多种语言的客户端开发包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。
Redis
Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客户端。
④ 几种常用的开源内存数据库性能比较
本人理解:orcal速度快但是维护不方便吗,费钱。mysql速度可以,维护方便,交orcal来说易上手。db2:大
⑤ 内存数据库主流的有哪些,并给出各自特点
目前关系型内存数据库主要有MySQL(使用内存存储引擎)、SQL Server(In-Memory OLTP)、数蚕内存数据库、Oracle 内存数据库。
MySQL:免费产品,内存存储引擎使用较少。
SQL Server:微软的商业化产品,是为了适应大数据等业务产品新添加的存储引擎,微软SQL语句兼容性好,商业化成熟度高。
数蚕内存数据库:数蚕科技针对中小型企业的内存数据库,查询响应快,支持多种sql特性。
Oracle 内存数据库:基于内存计算的关系数据库, 提供了响应时间极 短且吞吐量极高的应用程序。
非关系型内存数据库主要有FastDB、Memcached和Redis等主流内存数据库。结构简单,支持数据结构多以基础数据结构为主,一般应用于缓存等非关键数据存储,其优点是数据查询速度快,对下层编程接口良好。
⑥ 内存数据库优劣势有那些
看你需要的场景:
1. 应用程序构造大量的链表,树等复杂的数据结构代码很多而且容易出错调试麻烦,特别是对C/C++这种语言
2. 不得不说关系数据库的表达能力很强,代码量少,开发迅速, 但是mysql等等在性能上比手写的数据结构慢了很多
3. 我看到的内存数据库就是在这个场景下大有可为之地:有较高的性能需求,快速开发
⑦ 数据库和内存数据库有什么区别
数据库是数据保存在磁盘中,内存数据库是数据保存在内存中,这就是它们的主要区别。
⑧ 内存数据库,MySQL和sqlite,哪个更好
一般,内存数据库对应磁盘数据库,而mysql和sqlite通常指的都是磁盘数据库的两种不同管理系统。下面分别回答一下内存数据库和磁盘数据库优劣,mysql和sqlite优劣。
内存数据库:
基于内存的具有高效I/O、高并发的数据库。缺点存储量有限、可恢复性差。
1.
磁盘数据库:
基于磁盘存储稳定、保证数据可恢复性、一致性的数据库。缺点是实时性不足。
两种数据库一般来讲不会冲突,没有一个企业能够脱离磁盘数据库,固化的稳定的数据一般都是采用磁盘数据库。但是,当企业面临用户量扩大,并发性、实时性要求不断提高时,便会借助内存数据库。因此,根据你的场合选择合适的数据库存储形式非常重要。对于内存数据库,其实自己也没怎么用过,给你个传送门:http://dev.yesky.com/418/35355918.shtml
2.
对于mysql和sqlite,我个人觉得目前mysql非常通用,免费开源,学习成本低,应用面广泛,落地迅速,与各大主流的编程语言都有通用接口。相对较好,sqlite我只在学校时候用过,Σ( ° △ °|||)︴。
一起学习一起进步!
⑨ 如何客观评测内存数据库的性能
1、使你的数据库结构规范化,但是不要求一定达到第三范式,为了显示和打印目的可以有数据冗余2、评估你的系统中对性能影响的关键处,减少被频繁访问的核心表的数量,并在这些核心
表上重点优化索引,表结构(尽量紧凑)。典型的核心表是代码表。
3、对于统计类应用,如果可能应写成触发器和存储过程,这样就有可能把一个消耗大量时
间的统计运算分布到每INSERT,DELETE,或者UPDATE来处理,从而极大提高查询类操作的速度。
查询选择群居索引最有效。其他索引也要针对业务进行选择。由于维护索引也要消耗系
统资源和时间,所以过多的索引对性能是损害甚至是毫无效果的。
5、如果可能,可以利用大数据库对SQL的一些特殊规定来进一步优化,比如查询暗示。
6、适当选择硬件,综合考虑CPU,内存,I/O系统的性能,以当前的CPU,内存配置来看,
很多数据库系统的瓶颈出在I/O系统上。所以如果有可能,最好使用RAID。
当然如果你有足够的财力,可以买更好的服务器,或者搞服务器集群就更利害啦。
7、可能的话,尽量使用存储过程,因为存储过程的执行计划可以重复使用,而且不需要
象普通由CLIENT提交的SQL那样进行处理和编译。
8、检查你的应用程序设计,如果有可能,尽量减少查询次数和在网络上往返的数据。为了
获取少量字段而写SELECT * 对性能的损害也比较利害。
9、在应用程序中协调并发和一致性之间的矛盾。并不是所有业务都需要放在事务中。大量
业务是允许脏读的,在不关键事务中使用脏读,或者读提交,可以大大降低DEADLOCK和
进程之间彼此等待的机会,从而把由于互相锁定资源引起的等待降低到最小。
不要在事务执行中进行大量计算或者与用户交互的操作,因为事务的执行在要求上是
不允许被打断的原子操作(回滚是失败的),所以事务应该多而短小。长事务会锁住
很多资源比较长的时间,因此也比较容易导致其他进程对资源的等待和死锁的机会。
10、评估你开发系统的关键业务,在很多数据库系统对性能的要求是彼此矛盾的,比如OLTP
应用和DSS是不同的。DSS倾向于使用各种索引加快检索速度,而大量的索引对OLTP则是负担。
11、不要在应用程序中写怪异的SQL 查询,比如 WHERE money!40000,这样的语句,这种
SQL查询,数据库的SQL优化器是无法进行优化的。
12、定期维护和管理你的数据库系统,压缩掉那些垃圾空间,很多数据库系统执行类似
删除,事务等操作的时候,并不回收无用的物理空间。所以,制定一份合理的数据库
维护计划,不要等日志文件或者LOG文件越长越大的时候才去整理数据库。
⑩ 哪个数据库软件比较好用,主要是记录几万个个人信息的!求助!
MySql:
优点: 1.支持5000万条记录的数据仓库
2.适应于所有的平台
3.是开源软件,版本更新较快
4.性能很出色。纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。
5.价格便宜
缺点: 缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能
MsSqlserver:
优点: 1.真正的客户机/服务器体系结构
2.图形化的用户界面,使系统管理和数据库管理更加直观、简单
3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地
4.与WinNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,SQL Server也可以很好地与Microsoft BackOffice产品集成。
5.有很好的伸缩性,可以跨平台使用。
6.提供数据仓库功能,这个功能只在Oracle和其他昂贵的DBMS中才有。
Oracle:
优点: 1.Oracle的稳定性要比Sql server好。
2.Oracle在导数据工具sqlload.exe功能比Sqlserver的Bcp功能强大,Oracle可以按照条件把文本文件数据导入.
3.Oracle的安全机制比Sql server好。
4.Sql server的易用性和友好性方面要比Oracle好。
5.在处理大数据方面Oracle会更稳定一些。
6.Sql Server在数据导出方面功能更强一些。
7.处理速度方面比Oracle快一些,和两者的协议有关.
缺点: 价格昂贵
1. Oracle跨平台,SQL Server只能运行在Windows上,而Windows能够安装的硬件是有限的,如Sun的Sparc服务器不能安装Windows,一些大型机、小型机也只能装UNIX,在这些高端机器上就只能跑Oracle了,这注定了Oracle就是高端数据库,而SQL Server呢,中低端。
2. Oracle真正实现了行级锁,SQL Server也宣称实现了行级锁,但你实际去试,如果不加索引,其实是不行的。
3. Oracle因为有多版本数据的技术,读写操作不会相互等待,虽然SQL Server 2005学习Oracle增加了snapshot机制,从而也引进了多版本数据(MySQL也有多版本数据机制,不能说一定是学习Oracle),但是实际效果感觉就是2个版本的数据,隔离级别为read committed时候,读写不再相互等待,但是把隔离设置为Serializable还是会产生读写相互等待。
4. Oracle的事务日志归档相当方便,而SQL Server要用事务日志备份来实现,而且还要配置自动作业,启动agent服务。
5. Oracle的数据字典丰富,使得DBA容易判断数据库的各种情况,虽然SQL Server 2005学习了Oracle的数据字典的特点,但从数量及方便程度上还是相差太多。个人感觉这是Oracle最人性化的地方。
6. Oracle的PL/SQL比SQL Server的T-SQL功能强大很多。
7. Oracle的触发器比SQL Server的种类多几种。
8. oracle的备份恢复原理相当简单明了,备份就在操作系统上拷贝数据文件好了,恢复呢,再拷贝回来,数据是旧的,不怕,应用重做日志好了。SQL Server呢,虽然原理在本质上还是这些,但操作起来麻烦多了,麻烦到让你体会不到其本质。
9. Oracle数据库启动可以有多个阶段,使得DBA可以在不同的情况下,通过启动到特定的阶段解决一些特殊问题,而SQL Server只要服务一启动,所有数据库就都打开了。
10. SQL Server给人的感觉是简单易用,但是我要说,如果你继续向前走,就会发现SQL Server的体系结构相当复杂(注意我这里是说的复杂),大体还是沿袭的Sybase的体系结构,这种复杂结构,估计很难有根本性的改变,而Oracle呢,时间越长你越会觉得其体系结构严谨,虽然开始会感觉很难。我的一个比喻,SQL Server是傻瓜相机(就是那些一两千的小数码),Oracle是单反相机(40D,5D,D300),如果你是入门者,那用傻瓜相机好了,在各种环境下拍摄,基本都过得去,用单反,光圈、快门都要自己设定,反倒不如傻瓜相机的效果,如果你是高手了,那傻瓜相机就很难得心应手了。
11. Oracle的书籍一般都比较深,随便一说就是一大批,Epert Oracle、Practical Oracle 8i、Cost-based Oracle,SQL Server呢,恐怕只有那套Inside SQL Server了,虽然SQL Server的书籍数量比Oracle的多的多(特别是在国内),但多数都是step by step的入门书。
12. 对比SQL*Plus与sqlcmd(或2000的osql,6.5的isql),sqlcmd的功能是太简陋,差得太多了。
13. SQLServer的最大优点就是和Windows结合紧密,易用,但是要注意事情都是两面的,这些优点可能导致其致命的缺点,例如易用,使得搞SQL Server的人可以不求甚解,有时候不求甚解是没问题的,但是有时候不求甚解可能会造成灾难,特别是对搞数据库的人来说。不好意思,本来要说SQL Server的优点呢,最后也成了缺点了。
ACCESS是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和图形用户界面两项特点,是 Microsoft Office的成员之一。优点:Access部署简单方便就一个文件运用起来比较灵活主要是桌面数据库系统,他也可以开发基于自己的桌面数据库应用(UI),也可以作为前端开发工具与其它数据库搭配开发应用程序(如SQL Server,DB2,Oracle等),熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的初级用户则使用它来开发简单的应用软件。
缺点:数据储存量小安全性不够高,加了用户级密码容易破解。C/S结构下对服务器要求很高,否则容易造成MDB损坏并发数255,但是对高强度操作适应性差,如果服务器不够好,网络不够好,编程的方法不够好,6-7个人同时访问就能导致MDB损坏或者并死,不能将VBA代码开发的软件系统直接编译成EXE可执行文件,不能脱离ACCESS或者ACCESS RUNTIME环境,该环境相对其他软件体积较大(50M左右)。Microsoft Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。
SQL Server是一个关系数据库管理系统。
优点:安全性高真正的客户机/服务器体系结构,图形化用户界面,使系统管理和数据库管理更加直观、简单,丰富的编程接口工具为用户进行程序设计提供了更大的选择余地。SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。具有很好的伸缩性,可跨越多种平台使用,对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。SQL Server还提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。
缺点:因功能强大,所以操作数据比ACCESS较为复杂