概念
- database:数据库,用来针对于不同应用进行数据隔离
- measurement:数据库中的表,类似与关系型数据库中 table
- points:表里面的一行数据。相当于关系库中表中一条记录,由时间戳(time)、数据(field)和标签(tags)组成
- time:主键必须存在,可以自动生成,也可以手动指定
- field:普通字段,不经常查询的数据,可以直接存储为 field
- tags:索引字段,主要用来提高查询效率
与 MySQL 概念对比
概念 | MySQL | InfluxDB |
数据库(同) | database | database |
表(不同) | table | measurement(测量、度量) |
列(不同) | column | point = tag(带索引的,非必须)、field(不带索引,必须)、timestemp(唯一主键) |
Point 相当于传统数据库里的一行数据,如下表所示:
Point 属性 | 传统数据库中的概念 |
time(时间戳) | 每个数据记录时间,是数据库中的主索引(会自动生成) |
fields(字段、数据) | 各种记录值(没有索引的属性)也就是记录的值,比如温度、湿度 |
tags(标签) | 各种有索引的属性,比如地区、海拔 |
注意: 在 InfluxDB 中,field 字段必须存在。因为字段是没有索引的。如果使用字段作为查询条件,会扫描符合查询条件的所有字段值,性能不及 tag。类比一下,fields 相当于 SQL 的没有索引的列。tags 是可选的,但是强烈建议你用上它,因为 tag 是有索引的,tags 相当于 SQL 中的有索引的列。tag 的 value 只能是 string 类型。
类型说明
这里的类型即 InfulxDB 中的表(measurement)中字段的类型:
- tag:只能是
string
类型 - field:支持四种常用类型
int
,float
,string
,boolean
类型 | 方式 | 示例 |
float | 小数 |
power=21.1 |
int | 整数 |
age=18 |
boolean | true/false |
boy=true |
String | "" or '' |
email="373675032@126.com" |