Tôi có một ứng dụng chạy trên Linux được nhúng. Tôi có một DB được xây dựng sẵn với một số bảng, mỗi bảng có rất nhiều hàng (hàng nghìn) và 52 cột. Tôi đã xây dựng DB phía trước, bởi vì tôi lo ngại rằng nếu tôi sẽ làm 'INSERT' tại thời gian chạy, tôi sẽ tạo ra phân mảnh đĩa, vì vậy thay vào đó tôi xây dựng một DB đầu tiên với rất nhiều rác 'INSERT' và trong thời gian chạy tôi sử dụng 'UPDATE's.Cải thiện hiệu suất của SQLite WAL
Tôi đang viết nhiều dữ liệu cho DB cứ 3 giây một lần, và đối với quy trình viết nhanh, tôi sử dụng chế độ WAL trong SQLite. Mặc dù, tôi có một vấn đề về hiệu suất. Dường như bất cứ khi nào một trạm kiểm soát xảy ra, Mất quá nhiều thời gian và bộ vi xử lý không thể thực hiện việc này trong vòng chưa đến 3 giây. Để cải thiện điều này, tôi đã tạo một chuỗi mà sau 10 cuộc gọi viết, nó nhận được một chuỗi tin nhắn từ chuỗi chính và kiểm tra điểm.
Vì vậy, bây giờ, có vẻ như tình hình tốt hơn nhưng tệp WAL ngày càng trở nên lớn hơn ... Làm cách nào tôi có thể làm việc ở đây?
Lưu ý rằng điều này ảnh hưởng đến phân bổ không gian tệp cho tệp cơ sở dữ liệu. Từ những gì tôi hiểu việc phân bổ cho tệp WAL không tôn trọng kích thước đoạn. –