问题标签 [in-memory-tables]

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 回答
9958 浏览

logging - 100% 内存 HSQL 数据库

我有一个 Java 应用程序设置为服务,每隔几个小时对约 3GB 的数据进行数据挖掘。我希望这在内存中 100% 发生。理想情况下,我希望应用程序与一切隔离;我希望它构建数据库,进行我需要的挖掘,并在完成后拆除数据库。

然而,对于 HSQLDB,即使我使用“创建内存表....”命令,也会写入所有语句的日志,并在下次应用程序运行时重新创建表。

我做了很多插入,~150k+,所以这个文件的大小会很快增长。我也不关心在下次运行时重建数据库,所以日志记录对我来说毫无用处。

完成后我可以删除文件,但如果可能的话,我想避免将那么多内容写入磁盘。

有没有办法关闭这个功能?

提前致谢!

0 投票
1 回答
938 浏览

mysql - 基于 MySQL 堆/内存的表

我有一个 12GB RAM 的服务器,my.cnf 中的 max_heap_table_size 设置为 6GB。(“max_heap_table_size=6442450944”)。设置后我重新启动了 MySQL 服务器。

问题是,每当我的表在插入期间只有 2GB 时,我都会收到错误“表已满”。为什么不让我添加超过 2GB 的数据?(2GB的数字是phpMyAdmin中显示的大小)

0 投票
3 回答
1231 浏览

mysql - 用于大规模更新 MySQL 表的最佳表引擎。MyISAM 还是 HEAP?

我正在创建一个应用程序,它将在某个位置存储几个不同比例的(半)实时馈送。每个秤的重量将放在一个表中,表的行数与秤一样多。秤应用程序每秒为 MySQL 数据库提供一个新的权重,PHP Web 应用程序每 3 秒读取一次。似乎不会有太多的流量会非常多地分页硬盘,或者差异是否可以忽略不计,但我想知道使用内存/堆表与使用内存/堆表相比是否更有效或更有意义正常的 MyISAM 表。

0 投票
1 回答
122 浏览

mysql - 选择 Mysql 引擎来处理一个大的“类型-值”表

我的任务是从数据库中删除操作期间未受影响的所有实体。我创建了一个单独的表,它有两列,第一个是表名,第二个是该表中记录的 id。

例如,如果我有桌子

和其中的记录

如果我编辑这条记录,我会将以下数据放入edited_entities:

然后我需要删除所有未受影响的实体(其中 id 不在edited_entities 表中)并且我执行以下操作:

我想知道这种操作(MySql)的最佳引擎是什么?默认的数据库引擎是 InnoDB。我考虑过内存(堆),但我不确定它是否可以加快删除操作。

如果您有建议如何优化所需的操作,我将很高兴在这里。

我不想在小狗表中添加额外的列。

0 投票
1 回答
6182 浏览

mysql - 在 MySQL 服务启动时运行 SQL 查询

我在 mysql 上创建了 HEAP (ram) 表以加快查询速度。但是mysql服务器重启后,我的堆表中的数据没有加载。

我的正常表名:id、product_name、status 为 myisam 的产品

id => integer 和 auto_increment,主键

product_name => var_char 和 key(index)

状态 =>布尔值

实际查询:

我想提高速度,所以我创建了具有相同结构的表,并将products_ram命名为 mysql HEAP 表。我正在使用此代码进行填充:

但是当重启mysql实例HEAP(ram)表数据已经消失了。

我找到了一个关于 mysql 内存存储的文档:http: //dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

但我找不到我要找的东西。

我想在 mysql 服务器初始化时自动将我的数据从 products 表插入/复制到 products_ram 表。

任何帮助将不胜感激。

编辑:我的操作系统:Windows Server 2008 R2 和 Mysql:MySQL 5.5

0 投票
2 回答
348 浏览

sql - SQL Server 在内存表中使用 tempdb

我正在 SQL 2014 上的内存表中进行测试,并且特定查询的执行计划在 tempdb 中显示了排序。

在此处输入图像描述

该查询在内存中的两个表(在两个表中都有非聚集索引的字段上)和一个带有一些总和和计数的 group by 之间有一个连接 - 服务器有足够的 RAM 可用。

如果表是“在内存中”,为什么在 tempdb 中对查询进行排序?

我还想知道如果内存表中不允许“创建索引”语句,为什么 SQL 建议创建索引。

0 投票
1 回答
110 浏览

sql-execution-plan - WSO2CEP:执行计划中未定义具有 ID 的流/表定义

我在执行计划中使用内存表,但编译器正在询问它的定义。查询是

mem_conn_table 是导致我添加最后一个查询时开始的问题。

0 投票
1 回答
323 浏览

join - Siddhi QL:与输入流的内存表外连接

我想以连续的方式计算出现在网络流量中的协议的百分比,以便这些百分比不断更新新事件。将生成一个饼图并使用百分比进行更新。由于我需要新的和以前的数据进行计算,我决定使用内存表来将事件保存更长时间(比如一天)。

由于事件表仅在与事件流连接时才可用,因此我也选择了外连接来获取旧值。只对协议及其百分比感兴趣,我只需要两列,但我无法在外连接中应用聚合函数。到目前为止,我生成的查询是:

我正在用一分钟的外部时间批处理窗口,然后获取协议及其计数,但它没有给我任何输出。

有什么建议么?

0 投票
1 回答
2070 浏览

ruby-on-rails - Rails 5 Active Record - 是否可以在内存中保留一个表?

如果我们有一个包含相对静态数据的小表,是否可以让 Active Record 在应用程序启动时加载它,而不必为这些数据访问数据库?

请注意,理想情况下,我希望这些数据可以与与其有关系的其他模型连接。

一个示例可能是带有电话号码前缀的国家/地区列表 - 此列表不太可能更改,如果更改,管理员将更改它。其他表可能与此有关系(例如,给定一个引用国家/地区的用户,我们可能想要查找国家/地区电话前缀)。

我在这里看到了一个类似的问题,但它已有 6 年历史,指的是 Rails 2,而我正在使用 Rails 5,也许从那时起就引入了一些东西。

首选的解决方案是:

  1. 内置 Rails / ActiveRecord 功能可在启动时加载表一次,如果随后加载与缓存表有关系的其他记录,则自动链接到缓存对象(即在某处手动缓存 MyModel.all 是不够的,因为仍然会通过查询数据库来加载关系)。
  2. 维护的库执行上述操作。
  3. 如果两者都不可用,我想另一种方法是将静态数据集定义为内存中的枚举/哈希或类似的,并将哈希键保留在与该数据有关系的记录上,并在这些模型上定义方法以使用数据库中持久化的键使用散列中的对象进行查找。虽然这似乎很手动......

[编辑] 潜在解决方案要考虑的另一件事 - 手动解决方案 (3) 还需要自定义控制器和路由,以便可以通过 API 访问此类数据。理想情况下,最好有一个解决方案,如果需要,可以通过 RESTful API(只读 - 只是 GET)提供此类数据,使用标准 Rails 机制(如 Scaffolding),而无需太多人工干预。

0 投票
3 回答
1957 浏览

sql-server - 如何查找 SQL Server 2016 Db 是否设置为内存优化?

我想通过 SQL 查询获取任何数据库的信息,SQL Server 2016无论它是否已设置为内存优化。我知道以下查询

告诉您是否可以(通过设置内存优化数据文件组)将数据库设置在内存表中。但我想知道 db 是否已经设置为包含在内存表中,即它的内存优化数据文件组是否已经设置?

对于任何给定的数据库,我如何通过 SQL 查询来实现这一点?