目前我在我们公司使用ClikcHouse来做数据报表,但有些查询会导致内存暴增使ClikcHouse的进程被系统Kill掉,通过分析知道是因为某些查询会查出大量的数据,如,每一次查询都会产生4000万条数据,差不多20G,这样的查询同时来多几条(并行查询)就直接把进程给干死了,所以我的做法是把并行查询改成串行查询, 即:
ClickHouseConn.SetMaxIdleConns(1) // 设置最大的空闲连接数
ClickHouseConn.SetMaxOpenConns(1) // 设置最大打开的连接数
这样的做法虽然保证了进程不会挂掉,但是在同一时刻有大量的查询时都要排队查询,效率太低。
所以想请问各位大神有没有什么好的策略?