Sql和NoSql

Sql和NoSql

SQL使用:如果有大量的更新操作,一定要使用事务,效率高。大数据情况下,要对表字段建索引。比nosql好的地方:有事务,能回滚。

SQL遇到的瓶颈:水平扩展

场景:不同设备(水泵,流量计),不同属性的数据采集,统计分析

水泵表(泵id,组id,泵状态,选择开关,故障状态)
流量计表(泵id,组id,瞬时流量,累计流量)
水泵历史数据表(泵id,泵状态,选择开关,故障状态)
流量计历史数据表(泵id,瞬时流量,累计流量)

数据展示:联表查询(问题:大数据下,查询慢)
1. 同类型不同品牌的设备,有各自的属性,就得水平扩充字段
2. 数据量大,为减少联表查询的耗时,会将同组设备的所有字段入库(方案1:建字段(参数值需跟设置属性值对应,做好对照表);方案2:用json存储),哪种方案都得水平扩充,受关系型数据库最大字段数,字符串最大长度限制

而nosql可以很好的解决水平扩展问题。

nosql,不仅可以存key/value,文档,文件,更加容易的分表(本地文件:lietedb,服务器:monogdb),缓存:redis

数据采集入库设计:

mysql:实时数据

influxdb:时序数据库,历史设备点位数据

monogdb/litedb:分组数据

https://github.com/lidanger/LiteDB.wiki_Translation_zh-cn/wiki

InfluxDB的写性能是MongoDB的2.4倍,存储效率是MongoDB的20倍,查询效率是MongoDB的5.7倍

InfluxDB函数:https://blog.csdn.net/yao_wen_yu/article/details/118182220

你可能感兴趣的:(sql,nosql,数据库)