并发查询下的性能问题

【详述】一个模糊查询的sql 1000w条数据左右,总cpu只用了6.5% ,大约1.2秒左右,同时并发执行十此=次cpu达到70%,query_pool并没有使用多少内存,按理来说内存足够相互之间应该没什么影响,但是并发执行下效率降了很多
【背景】做过哪些操作?
【业务影响】
【StarRocks版本】例如:2.3.2
【集群规模】例如:4fe(1 follower+2observer)+4be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【附件】



  • 慢查询:
    • Profile信息
    • 并行度:show variables like ‘%parallel_fragment_exec_instance_num%’;
    • cbo是否开启:show variables like ‘%cbo%’;
    • be节点cpu和内存使用率截图

不是内存的原因吧,CPU已经超70%,如果您的场景并发较高,调一下参数enable_pipeline_engine = false,parallel_fragment_exec_instance_num = 1

好的,starrocks 有类似mysql的全文索引吗?在高并发模糊查询下cpu很容易就打满了,效率也比较低,或者有没有类似的实现方法

StarRocks是列式数据库,不用建立索引就能很好的支持模糊查询,高并发解决就是优化SQL,减少SQL的查询时间和调一下参数enable_pipeline_engine = false,parallel_fragment_exec_instance_num = 1

请问下你的表是哪种模型的表,设置参数后有效果吗

降低并行度速度变快了 select /*+ SET_VAR(enable_pipeline_engine=true, pipeline_dop=2) */

请教一个问题,为什么列式数据库,不用建立索引就能很好的支持模糊查询?是StarRocks专门做了优化,还是列式存储天生的机制?不太理解其中的原理,希望您能提供一些参考材料,学习学习。谢谢

马上要发布的ngram bloomfilter可以优化这个问题