优化查询
在将数据写入集群后,您现在可以开始定义和测试您的典型查询模式,并采用优化措施来确保查询性能。
定义您的查询模式
了解您的典型查询模式有助于优先考虑优化,以满足您的查询性能要求。
例如,考虑以下问题
- 您通常是否按特定标签值查询数据?
应用自定义分区到您的目标数据库或表,以按这些标签进行分区。按常用查询标签进行分区有助于 InfluxDB 快速识别相关数据在存储中的位置,并提高查询性能。 - 您是否查询具有宽模式的表?
避免在您的SELECT
语句中使用通配符 (*
)。选择您希望在查询结果中返回的特定列。查询的列越多,查询性能就越低。 - 您是否查询大型历史时间范围? 使用基于时间的聚合方法来降采样您的数据,并返回每个时间间隔的聚合值,而不是所有数据。
决定您的查询语言
InfluxDB Clustered 同时支持 SQL 和 InfluxQL – 一种类似 SQL 的查询语言,专为 InfluxDB v1 设计,专门用于查询时间序列数据。
SQL
InfluxDB SQL 实现是一个功能齐全的 SQL 查询引擎,由 Apache DataFusion 提供支持。它受益于强大的上游社区,该社区不断改进引擎的功能和性能。某些特定于时间序列的查询(例如基于时间的聚合)在 SQL 中比在 InfluxQL 中更冗长,但它们仍然是可能的。
InfluxQL
InfluxQL 专为时间序列数据而设计,并简化了许多与时间序列相关的操作,例如基于时间的聚合、技术分析和预测。它不如 SQL 功能齐全,并且需要对 InfluxDB v1 数据模型有一定的了解。
优化您的查询
查看查询优化和问题排查文档,以获取有关如何排查和优化未按预期执行的查询的指导和信息。
分析查询
SQL 和 InfluxQL 都支持 EXPLAIN
和 EXPLAIN ANALYZE
语句,这些语句返回有关您的查询计划和执行的详细信息。这可以深入了解您可以为特定查询进行的可能优化。有关更多信息,请参阅分析查询计划。
自定义分区数据
InfluxDB Clustered 允许您定义数据的存储方式,以确保查询性能良好。自定义分区允许您定义 InfluxDB 如何分区数据,并可用于构造您的数据,以便 InfluxDB 更容易识别您通常查询的数据在存储中的位置。有关更多信息,请参阅管理数据分区。
报告查询性能问题
如果您已按照步骤优化和排查查询问题,但它仍然不满足性能要求,请参阅如何报告查询性能问题。
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB Clustered 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度或支持合同的客户可以联系 InfluxData 支持。