问题标签 [main-memory-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
248 浏览

main-memory-database - 主内存辅助内存对象

我有一种情况,我想在 Java 应用程序中(例如在 Eclipse 上)执行一些与 DB 相关的操作。我使用 MySQL 作为 RDBMS,使用 Hibernate 作为 ORM 提供程序。

  1. 我使用 Java 中的嵌入式 SQL 检索所有记录:

//定义连接...等

ResultSet 结果 = myStmt.executeQuery("SELECT * FROM employees");

// 迭代器

  1. 我使用 Hibernate ORM / JPQL 检索所有记录:

// 连接,实体管理器....等

列表结果 = em.createQuery("SELECT emp FROM Employees emp").getResultList();

// 迭代器

我知道 RDMS 位于辅助内存 (DISK) 上。问题是,当我得到两个结果时。员工实际上在哪里?在辅助 (SM) 或主内存 (MM) 上?

我想最后有两个对象群进行进一步测试,一个在 SM 上运行,一个在 MM 上运行?这怎么可能?

谢谢

坦率

0 投票
3 回答
505 浏览

c++ - 带有 C++ 接口的主内存数据库

我正在寻找具有 C++ 接口的主内存数据库。我正在寻找一个具有编程查询接口的数据库,最好是一个与本机 C++ 类型一起使用的数据库。例如,SQLLite 将查询作为字符串并需要执行解析......这很耗时。我正在寻找的操作是:

  • 创建能够存储整数类型的任意维度(属性数量)的表。
  • 支持插入、删除、选择、投影和(不是优先级的)连接。
0 投票
4 回答
3433 浏览

java - 将数据库表加载到内存中以供使用

在搜索应用程序中,我需要跟踪文件及其位置。目前正在为此使用数据库表,但是由于每次需要检索此类数据时都必须连接到数据库,因此这显然效率不高。有没有一种方法可以将表加载到内存并使用它?当它在内存中时,我不需要修改它。

谢谢你!

0 投票
1 回答
184 浏览

java - JDBC 兼容主内存独立数据库

我的 Java 应用程序需要一个高性能的主存数据库

1] 请推荐
-JDBC兼容的数据库
-Standalone(即Flat-File)
-支持内存表
-高性能
-B-TREE索引

2] JAVA中是否有任何技术可以在程序运行时将数据库加载到MEMORY中,并在程序存在时将其存储回磁盘(以压缩格式)。

请不要建议 SQLITE,因为性能是问题。

如果您建议使用内存模式的 HSQLDB 或 H2,请告诉我如何将数据库存储在文件中并使用 actionEvent 释放 HEAP。

0 投票
3 回答
320 浏览

java - 哪个写入文件更快?

我在处理大文件和内存限制方面的经验非常少。请注意,我使用 Java 作为编程语言。

我必须找到文件大小为 15GB 的记录,然后将结果写入另一个文件。基本上它是一个搜索范围功能的实现。我的目标是将我范围内的记录写入结果文件,并用换行符分隔。也就是说,每条记录都应该放在单独的行上。此类查询的数量在 400-1000 左右。因此,每个查询都会导致写入许多位于其范围内的记录。

那么以下哪个是更快的方法?

1-一旦我开始获取查询范围记录,我就开始将它们连续写入文件?

2-我将我的记录存储在一些字符串中,并为找到的每条记录附加字符串,然后最后写它?

3- 使用字符串生成器连接每个查询的结果,然后在最后写入文件?但字符串生成器不支持换行。

4-制作我自己的数据结构?

5- 制作一个记录数组列表,然后在最后对其进行迭代以写入文件?

请让我知道哪种方法在 IO 和 MM 方面最快。

0 投票
1 回答
1536 浏览

memory - 基址和极限寄存器在哪里?

基址和极限寄存器在哪里?

  1. CPU里有还是别的地方?

  2. 每个进程的基地址和限制地址都不同。那么,CPU如何知道每个进程的这些寄存器的值呢?

编辑:每个进程在内存中都有一个位置,起始地址(基址)和结束地址(基址+限制)。通过查看这些地址,cpu 不会对这些地址范围执行任何操作,以免影响其他进程的内存。因此,每个进程都有一个起始地址(基址)。我的问题是,cpu 如何获得这些地址,这些地址因进程而异

0 投票
2 回答
607 浏览

postgresql - 在 RAMdisk 上进行 PostgreSQL 基准测试?

我一直在考虑迁移到 RAMdisk 的想法。我知道它的风险,但只是想做一个小基准。我只有两个问题:(a)在读取查询计划时,它是否仍能区分磁盘命中和缓冲区命中?如果是这样,我应该假设两者都同样昂贵,还是应该假设它们之间存在差异?(b) RAM 磁盘不是持久的,但如果我想将一些结果导出到持久存储,我需要采取一些预防措施吗?它和平常一样吗,例如 COPY 命令?

0 投票
1 回答
333 浏览

database - SAP HANA 中的 CPBTree 是什么?

我正在研究 SAP HANA 主内存数据库。里面有索引CPBTree。在它的文档中,它是这样描述的:

CPB+-tree 代表 Compressed Prefix B+-Tree;这种索引树类型基于 pkB-tree。CPB+-tree 是一个非常小的索引,因为它使用“部分键”,它只是索引节点中完整键的一部分。

这有点模糊。网上没有关于CPBTree结构的其他解释。

有没有人可以解释更多或介绍一个好的文件?