Tôi thấy số lần đọc bị chặn bởi ghi vào cơ sở dữ liệu đang ở chế độ WAL - tôi bị cho là lý do tại sao.DB SQLite (có WAL) bị khóa khi chuẩn bị một thước đo "chọn" - tại sao?
thiết lập của tôi:
- cơ sở dữ liệu SQLite3, journal_mode = WAL, đồng bộ = NORMAL
- Mulitple C quá trình ++ (3 để được chính xác) sử dụng cơ sở dữ liệu - Bất kỳ phương pháp trong các quá trình mở và đóng phi của mình kết nối được chia sẻ với
sqlite3_open_v2
. - Phương pháp đó đang chèn dữ liệu mở db trong chế độ
SQLITE_OPEN_READWRITE
- Phương pháp mà đọc từ cơ sở dữ liệu (tức là chỉ làm chọn báo cáo) mở db trong
SQLITE_OPEN_READONLY
chế độ
Trong chế độ WAL Tôi tin rằng nó phải được có thể có độc giả đồng thời trong khi có một ghi xảy ra.
Tuy nhiên, tôi nhìn thấy "cơ sở dữ liệu bị khóa" khi tôi đang chuẩn bị một tuyên bố chọn sử dụng sqlite3_prepare_v2
Những gì tôi có thể làm sai mà gây ra đọc để chặn? Tôi có hiểu lầm về việc "Đọc" thực sự là gì không?
Bất cứ lời khuyên đánh giá cao,
nhờ :)