文档文档

问题排查查询

问题排查 SQL 和 InfluxQL 查询,这些查询返回意外结果。

为什么我的查询没有返回数据?

如果查询未返回任何数据,则可能是由于以下原因:

  • 您的数据落在查询的时间范围(或其他条件)之外——例如,InfluxQL SHOW TAG VALUES 命令使用 1 天的默认时间范围。

  • 查询(InfluxDB 服务器)超时。

  • 查询客户端超时。

  • 客户端库不支持查询返回类型。例如,可能不支持数组或列表类型。在这种情况下,请使用 array_to_string() 将数组值转换为字符串——例如:

    SELECT array_to_string(array_agg([1, 2, 3]), ', ')
    

如果查询超时或返回错误,则可能是由于以下原因:

  • 错误的请求
  • 服务器或网络问题
  • 查询的数据过多

了解 Arrow Flight 响应 和查询的错误消息。

优化缓慢或昂贵的查询

如果查询速度慢或使用过多的计算资源,请限制其查询的数据量。

请参阅如何 优化查询

分析您的查询

使用以下工具来检索系统查询信息、分析查询执行情况并查找性能瓶颈:

请求帮助以排查查询问题

某些瓶颈可能源于次优的查询执行计划,并且超出您的控制范围——例如:

  • 对已排序的数据进行排序 (ORDER BY)
  • 从对象存储中检索大量小型 Parquet 文件,而不是少量大型文件
  • 查询许多重叠的 Parquet 文件
  • 执行大量表扫描

如果您已按照步骤优化排查查询问题,但仍未满足您的性能要求,请参阅如何报告查询性能问题

查询跟踪日志记录

目前,客户无法为 InfluxDB 集群启用跟踪日志记录。 InfluxData 工程师可以使用查询计划和跟踪日志记录来帮助查明查询中的性能瓶颈。

请参阅如何报告查询性能问题


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已发布公开 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是一个用于时间序列和事件数据的最新数据引擎。 InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何入门的更多信息,请查看: