主键模型限制问题

在往主键模型导入数据时报错:Message":“Primary-key index exceeds the limit. tablet_id: 2726384, consumption: 33785456407, limit: 32749786791. Memory stats of top five tablets: 2727608(416M)2727620(416M)2727600(416M)2727588(416M)2727616(416M)”
是我的主键列数过多,占内存太多超出限制了吗

主键模型的key列会加载到内存里做高效的读写,所以在使用主键模型时,根据key列字符大小*数据量大概估算下内存开销,可以show tablet tabletid看下所属是哪个分区的数据,是否为热数据更新导致的

今天我也遇到这问题了,给一张空表里插入数据就“Primary-key index exceeds the limit. tablet_id” 然后tablet是那张被插入表的

最后发现是update 限制内存占满了

我们也遇到这个问题

主键索引内存占用超限制了,2.3以上版本支持 主键索引落盘,可以减少主键索引内存占用https://docs.starrocks.io/zh-cn/latest/table_design/table_types/primary_key_table#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E

这个链接好像失效了,有新的地址吗,具体应该如何配置主键索引落盘呢

建表时properties中配置 enable_persistent_index=true ,建表完成后可通过alter方式开启索引落盘,具体参考

谢谢,那这个报错"Primary-key index exceeds the limit",除了这个方法还有其他解法吗

  • 主键索引最大可用的内存由 update_memory_limit_percent 控制(默认值60,表示使用be进程可用内存的60%),内存充足可以把这个配置调大(静态参数,在be.conf中调整后重启be)。调大该参数,会导致查询导入等可用内存变少,容易导致查询内存不足 查询失败,或者导入内存不足导入失败。
  • 主键索引内存占用会在数据导入彻底完成6分钟后释放内存占用,如果非实时导入,可以考虑主键表错峰导入,每次导入时尽可能涉及的分区少一点,减少同时段主键索引的内存占用
  • 主键索引落盘可以大幅减少主键索引内存占用,建议最好是做主键索引落盘
1赞