2012-11-14 26 views
6

SQLite có thể quản lý truy cập đồng thời không? Tôi sử dụng SQLite với C/C++? Nếu nó không hỗ trợ điều đó. Có đề xuất nào để hỗ trợ truy cập đồng thời trong SQLite không?Truy cập đồng thời trong SQLite

+0

Giao dịch có được sử dụng không? – Whymarrh

+0

http://stackoverflow.com/questions/4060772/sqlite3-concurrent-access – Oxi

Trả lời

9

Có nó là tài liệu khẳng định here:

SQLite Version 3.0.0 giới thiệu một khóa và ghi nhật ký mới cơ chế thiết kế để cải thiện đồng thời trên SQLite phiên bản 2 và giảm vấn đề nhà văn đói. Cơ chế mới này cũng cho phép các cam kết nguyên tử của các giao dịch liên quan đến nhiều tệp cơ sở dữ liệu.

và:

SQLite sử dụng POSIX khóa tư vấn để thực hiện khóa trên Unix. Trên Windows, nó sử dụng hệ thống LockFile(), LockFileEx() và UnlockFile() cuộc gọi.

And here:

SQLite sử dụng ổ khóa hệ thống tập tin để đảm bảo rằng chỉ có một quá trình và kết nối cơ sở dữ liệu đang cố gắng sửa đổi cơ sở dữ liệu tại một thời điểm. Cơ chế khóa hệ thống tập tin được thực hiện trong lớp VFS và là khác nhau cho mọi hệ điều hành. SQLite phụ thuộc vào việc thực hiện này là chính xác. Nếu xảy ra sự cố và hai hoặc nhiều hơn quy trình có thể ghi cùng một tệp cơ sở dữ liệu cùng một lúc, thì có thể xảy ra thiệt hại nghiêm trọng cho .

Các vấn đề liên quan