室内温度监控的 mysql 数据库设计

2019-09-08 14:55:48 +08:00
 kayseen
需求:
室内温度实时监控

1.展示近 30 分钟内的实时室内温度(比如 11:30, 11:31 的温度分别是多少)
2.展示同一时刻的近 7 天的温度变化(比如现在是 11:30,需要展示的是往前共计 6 天的 11:30 的温度)


请教下这种需求的数据库应该怎么设计啊?
要展示近七天历史的每分钟的室内温度,总不能在数据库给每分钟都建立一个字段吧....请大家赐教
9218 次点击
所在节点    Python
74 条回复
OctopusGO
2019-09-08 14:59:00 +08:00
这个记录分钟不可以么?
mjVtb96d2bap2u3Z
2019-09-08 14:59:28 +08:00
id|create_date|temp 不就完事了?
ycz0926
2019-09-08 14:59:54 +08:00
nosql 不就行了
lolizeppelin
2019-09-08 15:02:32 +08:00
直接用 pg 的 timescaledb 啊,直接 time bulk 处理
这种最适合时序数据库了,不要坚持 mysql 了,不行的
chendy
2019-09-08 15:02:34 +08:00
时序数据
模仿时序数据库的思路做就行了
kayseen
2019-09-08 15:02:52 +08:00
@OctopusGO 记录分钟的话,每小时 60 分钟,每天 24 小时,这字段有点多吧......
gavindexu
2019-09-08 15:09:53 +08:00
@kayseen 一个 datetime 字段就行了啊,
自增 id,时间字段,温度,[温度记录仪放置位置],再加一个 timestamp 的录库时间👀
crayygy
2019-09-08 15:11:28 +08:00
id; datetime; temperature

总感觉是不是对数据库的表结构有什么误解,日期和分钟只是一个时间数据,为什么需要每个分钟都建一个字段,难道我建立一个学生表还需要把每个学生的名字建一个字段不成?
newtype0092
2019-09-08 15:15:08 +08:00
你开个字段记时间戳就好了啊,为什么需要每分钟都建立一个字段?
看你应该是不太懂时间戳,一般这种记录都要带时间戳的,以后取的时候根据规则过滤就好了,mysql 用 from_unixtime 和 unix_timestamp 之类的函数可以很方便的转换。
whatever93
2019-09-08 15:21:24 +08:00
Influxdb 时序数据库
Raymon111111
2019-09-08 15:29:10 +08:00
其实是时序需求, 有专门的存储搞这个的

但是够简单, 数据足够小, mysql 一样可以

字段就是 id, time, temp

两个取的需求, 一个是 time 三十分钟内

第二个简单做直接 in 就行 time in ( now, now-secOneDay, now-secOneDay*2....)
kayseen
2019-09-08 15:37:03 +08:00
@Raymon111111

@newtype0092
@crayygy

@crayygy
这样建字段的话,就是一个房间,每分钟记录一条数据,每天记录 1440 条数据,如果房间在 20 左右的话,MySQL 压力可以吗?
loading
2019-09-08 15:42:00 +08:00
时分秒各一列,这样你写 sql 也简单。
snappyone
2019-09-08 15:50:21 +08:00
@kayseen 一天 3 万条能有啥压力
opengps
2019-09-08 16:02:03 +08:00
看我博客,最近重新提过,用关系型数据库模拟时序数据库效果,只有 2 列就可以,timestamp 列和数值列即可
xduanx
2019-09-08 16:02:08 +08:00
参考 zabbix 的数据库设计
xduanx
2019-09-08 16:04:21 +08:00
zabbix 里的 history_uint 表里就是每个几秒记一条记录
gainsurier
2019-09-08 16:08:08 +08:00
time tag_name value status
Huelse
2019-09-08 16:29:46 +08:00
一天 1440 分钟,一年也就 525,600 次记录,这点数据完全受的住
kayseen
2019-09-08 16:41:45 +08:00
@opengps 可以提供下博客地址吗?我在 CSDN 上没看到你的这篇文章。。谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/599018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX