我正在考虑重新开发一个存储和可视化传感器数据的应用程序。该应用程序可供多个用户访问,他们可以添加无限的传感器。我们现在有 10 个用户,我们有大约 1000 个传感器。用户数量可能不会改变。如果有足够的电力(太阳能电池板),传感器每 5 秒发送一次数据。
现在数据存储在 4 个表中。
- 用户 [id、电子邮件、密码等]
- 设备 [id, name, user_id] user_id: 外键
- Sensor [id, device_id, type] device_id:外键
- 数据 [id, sensor_id, time, data] sensor_id: 外键
问题是数据表变得非常大。目标是将数据保留近一年。我使用 MySQL,我对它的性能非常失望。现在我正在使用带有 Gunicorn 的烧瓶,并且正在使用 RabbitMQ 来排队存储过程。我有什么可以改变的来提高现有系统的性能吗?如果你从头开始做这件事,你会做出什么改变?NoSQL 会在这种情况下产生重大影响吗?我要求太多,但这是我第一次遇到这种问题。