我正在建立一个简单的 SQLite 数据库来保存传感器读数。这些表看起来像这样:
sensors
- id (pk)
- name
- description
- units
sensor_readings
- id (pk)
- sensor_id (fk to sensors)
- value (actual sensor value stored here)
- time (date/time the sensor sample was taken)
该应用程序将每月从大约 30 个不同的传感器捕获大约 100,000 个传感器读数,我希望尽可能长时间地将所有传感器读数保留在数据库中。
大多数查询将采用以下形式
SELECT * FROM sensor_readings WHERE sensor_id = x AND time > y AND time < z
此查询通常会返回大约 100-1000 个结果。
所以问题是,在上述查询变得过于耗时(在标准 PC 上超过几秒钟)之前,sensor_readings 表可以有多大。
我知道一个解决方法可能是为每个传感器创建一个单独的 sensor_readings 表,但如果没有必要,我想避免这种情况。还有其他方法可以优化此数据库模式吗?