保留内存表的索引

时间:2015-06-01 16:23:16

标签: mysql mysql-5.5

存在执行某些计算的存储过程。

我需要有一个高性能的查找机制来检测重复项,内存表给我一个很好的性能,但它是不合理的内存饥饿。

我有一个两列表,它有这两列的索引,如:

create temporary table my_cache (
 col1 varchar(10) not null,
 col2 varchar(15) not null,
 index my_cache_idx using hash (col1, col2)
) engine=memory

我有以下数据和索引大小:

data size: 832.79 mb
index size: 333.51 mb

这些结果来自计算的一部分(实际上它们甚至更大)。我喜欢索引大小增长的速度,但我不喜欢数据大小增长,我根本不需要数据。

我尝试使用高key_cache_size(2G)的myisam表并在其上创建索引,但它的性能要差得多(内存表我每秒获得大约50000条记录,而myisam表只有6000条)每秒)。

是否有任何方法可以在保持高性能的同时缓解内存消耗?

0 个答案:

没有答案