나는 임베디드 리눅스에서 실행되는 응용 프로그램을 가지고 있습니다. 각 행에 수천 개의 행과 52 개의 열이있는 테이블이있는 사전 구축 된 DB가 있습니다. 실행 시간에 'INSERT'를 수행하면 디스크 조각화가 생기므로 대신 DB 쓰레기를 많이 넣고 'INSERT'를 실행하고 런타임에는 DB를 작성해야한다는 점을 염두에두고 DB를 작성했습니다 나는 'UPDATE'를 사용한다.SQLite WAL 성능 향상
DB에 3 초마다 많은 데이터를 쓰고 있으며 쓰기 절차가 빠르기 때문에 SQLite에서 WAL 모드를 사용합니다. 나는 성능에 문제가있다. 체크 포인트가 발생할 때마다 너무 오래 걸리고 프로세서는 3 초 이내에 처리 할 수없는 것으로 보입니다. 이를 개선하기 위해 필자는 10 번의 쓰기 호출 후에 주 스레드에서 메시지 큐를 받고 검사 점보다 큰 스레드를 만들었습니다.
이제는 상황이 더 좋아 보이지만 WAL 파일이 점점 더 커지고있는 것 같습니다. 여기서 어떻게 해결할 수 있습니까?
이것은 데이터베이스 파일의 파일 공간 할당에 영향을줍니다. 내가 WAL 파일에 할당하는 것이 청크 크기를 존중하지 않는다는 것을 이해합니다. –