内存数据库是相对于磁盘数据库来说的 。我们都知道我们经常使用的关系型数据库 。比如MySQL 。它的数据文件最终是存储到磁盘上的 。而内存数据库则是将所有的数据存储在内存中 。磁盘和内存在访问速率上不是一个量级的 。完全没有可比性 。
文章插图
应用场景
缓存数据:将高频访问的数据通过一定的机制加载到内存中 。减少应用与数据库的连接 。极大的提高了应用的性能;
内存计算:如果你的数据在内存中 。那么你可以充分利用CPU的资源去做数据的计算、聚合、查询 。而不用担心数据库是否能承受你的SQL查询 。
主流的内存数据库
关系型内存数据库:H2、Apache Ignite、SQLite
H2:支持嵌入式 。服务器和集群模式 。支持内存数据库 。纯Java开发
文章插图
文章插图
Key-Value内存数据库:redis、Memcached
文章插图
文章插图
传统数据库的内存数据库引擎:
MySQL Memory Engine
SQL Server 2016 In-Memory OLTP
传统数据库提供的内存数据库 。将磁盘数据加载到内存中 。利用查询引擎操作内存数据
总结
以上是个人整理的一些内存数据库 。都是我们平常业务开发时候多少都有用到的内存数据库 。了解每一种内存数据库的特性 。结合它们的优缺点并应用于不同的业务场景 。才是正确的编码之道 。
内存数据库不是银弹 。他也不能代替传统数据库 。只有内存数据库与传统数据库(磁盘数据库)强强联手、互相补充才能发挥出数据存储技术的强大威力!
其他观点:
关系型 Mongodb、Hana、H2;
MongoDB 是一个基于分布式文件存储的数据库 。介于关系型和非关系型之间 。数据以文档的形式存在 。文档以BSON格式存放 。
Hana是德国SAP公司的产品 。非开源、价格比较昂贵并且对服务器硬件配置要求比较高 。国内用的比较少 。
H2开源产品 。优点小而快、查询语法简单 。嵌入式和单独部署皆可 。
KV型 Redis、Memcache、 Ignite、Guavacache;
【内存数据库有哪些?】Redis常被用做分布式缓存组件 。支持的数据结构比较丰富 。集群架构部署性能更强悍 。
Memcache仅仅是作为第三方缓存组件使用 。不能称之为数据库 。支持的数据结构单一 。支持集群部署 。
Apache Ignite从名字就能看的出来 。Apache的开源分布式产品 。支持内嵌也支持单独部署 。功能挺强大 。有兴趣的可以看下 。JVM堆外内存 。
Guavacache仅仅是作为项目内部缓存使用 。不能称之为数据库 。内嵌式 。占用JVM堆内存 。
但是一般关系型的用来存储数据并且持久化 。KV型的用来做缓存 。两者搭配来用 。
以上仅个人观点 。欢迎大家评论区留言指正 。
其他观点:
1 。SQLITE是一个小型的C程序库 。实现了独立的 。可嵌入的 。零配置的SQL数据库引擎 。
2 。ORACLE内存数据库系列BERKELEY DB和TIMES TEN 。前者只支持嵌入式内存数据 。后者是独立的内存优化数据库 。
3 。EXTREMEDB内存式实时数据库是为实时系统及嵌入式系统而特别设计的数据库 。
4 。H2 DATABASE 是THOMAS MUELLER提供的一个开源的 。纯JAVA实现的关系数据库 。
推荐阅读
- 哪里有句句正能量的励志语录个性签名?
- 黄精补肾效果怎么样
- 感觉vivo手机续航能力太差是什么原因?
- 穿心莲种植方法有几种 穿心莲种植的时间和方法
- 百香果移栽有什么技术要点 百香果移栽方法和注意事项
- 有没有一句话是一直激励你前行的?能否秀出你的座右铭?
- 糖醋蒜属于腌制食品吗
- 为什么现在大部分互联网公司使用的数据库是MySQL?
- 你见过最励志座右铭是什么?