文档文档

优化查询

在将数据写入集群后,您现在可以开始定义和测试您的典型查询模式,并采用优化措施来确保查询性能。

定义您的查询模式

了解您的典型查询模式有助于优先考虑优化,以满足您的查询性能要求。

例如,考虑以下问题

  • 您通常是否按特定标签值查询数据?
    应用自定义分区到您的目标数据库或表,以按这些标签进行分区。按常用查询标签进行分区有助于 InfluxDB 快速识别相关数据在存储中的位置,并提高查询性能。
  • 您是否查询具有宽模式的表?
    避免在您的 SELECT 语句中使用通配符 (*)。选择您希望在查询结果中返回的特定列。查询的列越多,查询性能就越低。
  • 您是否查询大型历史时间范围? 使用基于时间的聚合方法来降采样您的数据,并返回每个时间间隔的聚合值,而不是所有数据。

决定您的查询语言

InfluxDB Clustered 同时支持 SQLInfluxQL – 一种类似 SQL 的查询语言,专为 InfluxDB v1 设计,专门用于查询时间序列数据。

SQL

InfluxDB SQL 实现是一个功能齐全的 SQL 查询引擎,由 Apache DataFusion 提供支持。它受益于强大的上游社区,该社区不断改进引擎的功能和性能。某些特定于时间序列的查询(例如基于时间的聚合)在 SQL 中比在 InfluxQL 中更冗长,但它们仍然是可能的。

InfluxQL

InfluxQL 专为时间序列数据而设计,并简化了许多与时间序列相关的操作,例如基于时间的聚合、技术分析和预测。它不如 SQL 功能齐全,并且需要对 InfluxDB v1 数据模型有一定的了解。

优化您的查询

查看查询优化和问题排查文档,以获取有关如何排查和优化未按预期执行的查询的指导和信息。

分析查询

SQL 和 InfluxQL 都支持 EXPLAINEXPLAIN ANALYZE 语句,这些语句返回有关您的查询计划和执行的详细信息。这可以深入了解您可以为特定查询进行的可能优化。有关更多信息,请参阅分析查询计划

自定义分区数据

InfluxDB Clustered 允许您定义数据的存储方式,以确保查询性能良好。自定义分区允许您定义 InfluxDB 如何分区数据,并可用于构造您的数据,以便 InfluxDB 更容易识别您通常查询的数据在存储中的位置。有关更多信息,请参阅管理数据分区

报告查询性能问题

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


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

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

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

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

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

有关如何开始使用的更多信息,请查看