maxianzhen
maxianzhen
 
因为是初次体验,可能是使用上或某些配置上不当的原因,发现加上limit 查询时也会导致taosd进程消失。 taosdlog.0: `03/29 21:42:11.698439 00004930 UTL default gitinfo e27fdcff254b7bd0e0ad2f825e0414da4c0f37dc 03/29 21:42:11.698441 00004930 UTL default buildinfo Built Linux-x64 at 2024-02-29 18:01:09 +0800 03/29 21:42:11.698443 00004930 UTL ================================================================= 03/29 21:42:11.701717 00004930...
查看文档有explain命令,生成添加”limit 10”前后的执行计划进行对比后发现:添加limitq前后的执行计划差异明显 
大略通读3.0官方文档,发现有几个点是TDengine特色的。 首先,limit是作用在子表,并不是限制最终结果集。而我在示例sql上增加limit 10,原是预期按传统数据库的方式,在回显的返回结果集上只显示符合条件的10条记录。 其次,有个SMA的预计算概念,在数据文件的头部信息会记录数据库的min/max/sum的信息。 有个疑问: select _wstart, location, max(current) from meters partition by location interval(10m) limit 10; 当在示例sql上加了limit之后,因为limit是作用到子表上限制为10条,那会不会导致这个数据块的头部信息的SMA记录在limit查询中不起到作用哪?(新人刚刚接触TDengine,个人猜测)
> 您好,可以加我们微信a15652223354 > > 我们给您具体排查一下吧。 谢谢!不需要了。我是因为恰巧月初投了一份简历就下载了单机版部署了解了解tdengine。从当时看到的信息来分析,应该是单机模式的limit算子下推的原因,可能部分逻辑在走集群模式,而且单机模式partition没有参与执行计划(或已内部优化)