Tôi đang thiết lập một cơ sở dữ liệu SQLite đơn giản để giữ các chỉ số cảm biến. Các bảng sẽ trông giống như thế này:Có bao nhiêu hàng có thể một bảng SQLite giữ trước khi truy vấn trở thành thời gian comsuming
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)
Ứng dụng này sẽ được khai thác khoảng 100.000 cảm biến mỗi tháng từ khoảng 30 cảm biến khác nhau, và tôi muốn giữ tất cả các cảm biến trong DB càng lâu càng tốt.
Hầu hết các truy vấn sẽ theo hình thức
SELECT * FROM sensor_readings WHERE sensor_id = x AND time > y AND time < z
Truy vấn này thường sẽ trở về 100-1000 kết quả.
Câu hỏi đặt ra là bảng sensor_readings lớn đến mức nào trước khi truy vấn trên trở nên quá tốn thời gian (hơn một vài giây trên PC chuẩn).
Tôi biết rằng một bản sửa lỗi có thể là tạo một bảng sensor_readings riêng biệt cho mỗi cảm biến, nhưng tôi muốn tránh điều này nếu không cần thiết. Có cách nào khác để tối ưu hóa lược đồ DB này không?