问题标签 [memory-table]

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 投票
2 回答
240 浏览

mysql - mysql,强制限制表中的条目

我在内存表中保存了一些临时数据。我只需要 20 个最近的条目,并且希望数据始终在堆上。我应该如何做到这一点?我确信我对内存表无能为力,但我应该如何处理条目表?每当我想推入一个新值时,我应该添加一个自动增加键并删除最旧的键吗?

0 投票
4 回答
11402 浏览

mysql - 索引表中的每一列

我有几个关于 MySQL 索引的问题:

1) 索引存储在内存中的表时是否有任何速度增加?

2) 当搜索我在列字段上匹配的表时,索引每一列是否会破坏索引的目的?

非常感谢。

0 投票
2 回答
980 浏览

mysql - mysql:内存表达到max_heap_table_size怎么办?

我正在使用 mysql 内存表作为缓存多次读取的数据行的一种方式。我选择了这个替代方案,因为我无法在我的解决方案中使用 xcache 或 memcache。在阅读了有关此主题的mysql 手册和论坛后,我得出的结论是,当表达到其最大内存大小时会引发错误。我想知道是否有办法捕获此错误以截断表并释放内存。我不想提高可以使用的内存限制,我需要一种自动释放内存的方法,以便表可以继续工作。

谢谢。

0 投票
3 回答
2072 浏览

mysql - 为什么不像 memcached 那样使用 MySQL?

出于同样的原因,在一个应用程序中同时使用 NoSQL 和 RDBMS 是有意义的,对我来说,除了 NoSQL 缓存之外还有一个 RDBMS 缓存是有意义的。

我正在考虑使用带有内存引擎的所有表的 MySQL 服务器。

这种方法有什么警告吗?

澄清一下,我在这里建议仅将 MySQL 服务器用于缓存目的,而不是用于我的应用程序的实际数据存储。

0 投票
1 回答
584 浏览

mysql - 小内存表中主键上的简单常量选择非常慢

我有一个大约 650 行、5 MB 数据长度、60 kB 索引长度的 MEMORY 表(所以它非常小)。它有一个 SMALLINT 主(散列)键和大约 90 个其他列(整数、varchars、日期时间,没有 blob 或文本)。(编辑:BIGINT 列上还有一个哈希键。)

我经常(大约每秒 10 次)运行这个查询(来自 PHP):

select * from userek where id={CONST_ID} and kitiltva=0 and kitiltva_meddig<"{CONST_DATETIME}" and inaktiv=0

注意:id是主键。我需要,*因为结果在很多不同的地方使用,基本上所有的列都在这里或那里使用。

我的问题是:查询定期变得异常缓慢。大约0.5s平均,8s最大。大多数时候它非常快:75%运行速度比快3ms85%比平均速度快。但15%它比平均速度13%慢,比1s. 所以它的尾巴很长。

我完全不知道是什么原因造成的。有什么想法吗?

0 投票
1 回答
125 浏览

mysql - 2台服务器,2个内存表,不同大小

我有两台服务器都运行 MySQL 实例。第一个服务器 1 正在运行 MySQL 5.0.22。另一个 server2 正在运行 MySQL 5.1.58。

当我创建一个内存表server1并添加一行时,它的大小是立即的8,190.0 KiB

当我创建一个内存表server2并添加一行时,它的大小仍然是 only some bytes

这是由 MySQL 版本的差异引起的,还是(希望)这是由于我可以更改的某些设置?

编辑:

我还没有找到这种行为的原因,但我确实找到了解决方法。因此,对于将来的参考,这就是为我解决的问题:

我所有的内存表都是一次制作的,并且从那里开始是只读的。当您向 MySQL 指定表将拥有的最大行数时,它的大小将缩小。以下查询将为您执行此操作。

0 投票
2 回答
39360 浏览

mysql - 更改 max_heap_table_size 值?

max_heap_table_size 限制为 16 mb,那么我该如何更改此值以及在哪里更改?

0 投票
1 回答
618 浏览

mysql - 将数据插入内存表

我创建了一个 MEMORY 表。我想将 MyIsam 表(比如PIN_DETAILS)中的数据加载到 MEMORY 表(比如PIN_DETAILS_MEMORY)中。

当我尝试将MyISAM表的数据转储到 MEMORY 表中时(使用INSERT INTO...SELECT),只有8190行被复制到内存表中。MyISAM 表中有近 2 条 lacs 记录。我也尝试过更改*max_heap_table_size*,但没有任何运气。你能建议任何解决方案吗?

更新:

我插入数据的 SQL 查询是

0 投票
1 回答
1448 浏览

mysql - 内存表的主键必须是HASH,为什么?

我想将内存表用作一组队列。

因此,将有一个带有 int 列 a 和 b 的内存表。
查询如下:
SELECT b FROM table WHERE a=? 按 b DESC 限制 1000 排序

我试过这个:

但主键仍然是 HASH:

  1. 这是否意味着,我需要a为此类查询创建另一个 key()?

  2. 为什么主键不能是 BTREE 索引?如果我将主键更改为普通键有什么区别?

0 投票
0 回答
287 浏览

mysql - 覆盖完整的mysql表

最近我遇到了一个问题,即带有内存引擎的 mysql 表已满,并且插入失败(真的很长的 php 脚本)。我很快就摆脱了它,在我插入之前检查是否已经有很多行并删除它们

但这并不酷。实际上,我希望 mysql 为我做这件事。现在,问题是:
是否有标准的替代 AUTO_INCREMENT,但不是LAST+1每次都返回,而是LAST+1 (mod N). 这将允许使用旧的 ID 列值覆盖行。有没有这样的机制,还是我必须自己实现?
谢谢你。