存在执行某些计算的存储过程。
我需要有一个高性能的查找机制来检测重复项,内存表给我一个很好的性能,但它是不合理的内存饥饿。
我有一个两列表,它有这两列的索引,如:
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条)每秒)。
是否有任何方法可以在保持高性能的同时缓解内存消耗?