センサーデータを保存・可視化するアプリの再開発を考えています。アプリケーションには複数のユーザーがアクセスでき、センサーを無制限に追加できます。現在、ユーザーは 10 人で、約 1000 個のセンサーがあります。ユーザー数はおそらく変わらないでしょう。十分な電力 (ソーラー パネル) がある場合、センサーは 5 秒ごとにデータを送信します。
現在、データは 4 つのテーブルに格納されています。
- ユーザー [ID、メール、パスワードなど]
- デバイス [id, name, user_id] user_id: 外部キー
- センサー [id, device_id, type] device_id: 外部キー
- Data [id, sensor_id, time, data] sensor_id: 外部キー
問題は、Data テーブルが非常に大きくなることです。目標は、ほぼ 1 年間データを保持することです。私は MySQL を使用していますが、そのパフォーマンスに非常に失望しています。現在、Gunicorn でフラスコを使用しており、RabbitMQ を使用して格納手順をキューに入れています。既存のシステムのパフォーマンスを向上させるために変更できることはありますか? このことをゼロから始めた場合、どのような変更を加えますか? この状況で NoSQL は大きな違いを生むでしょうか? 私はあまりにも多くを求めていますが、この種の問題に直面したのは初めてです。