Có thể sử dụng SQLite làm cơ sở dữ liệu máy khách-máy chủ không? [đóng cửa]


32

Có bất kỳ kỹ thuật hoặc công cụ nào để làm việc với SQLite trên môi trường DB kích thước trung bình / lưu lượng truy cập / đồng thời không?


3
Bạn có thể đưa ra một lý do tại sao điều này sẽ là một điều hữu ích để có? Nếu không, tôi nghĩ rằng nó xứng đáng đóng cửa như không phải là một câu hỏi thực sự. SQLite không phải là cơ sở dữ liệu máy chủ-máy khách và thực sự được tiếp thị cho đám đông không cần cơ sở dữ liệu máy chủ-máy khách.
jcolebrand

1
@Eelke mặc dù điều này không còn đúng trong chế độ WAL từ phiên bản 3.7 - mỗi lần chỉ có thể viết một lần, nhưng "độc giả không chặn nhà văn và nhà văn không chặn độc giả"
Jack Douglas

1
tình cờ, Wikipedia dường như có lỗi này
Jack Douglas

2
Tại sao? Tôi nghĩ bạn nên xác định các yêu cầu của mình ... và có thể bạn sẽ tìm thấy một cơ sở dữ liệu phù hợp hơn ...
AK_

3
@AK_ Các yêu cầu chính là ACID đầy đủ và cơ sở dữ liệu rất đơn giản để phát triển và sử dụng. Chúng tôi đã xây dựng một phiên bản tùy chỉnh để hoạt động như một máy chủ-máy khách và kết quả thật tuyệt vời! Mọi người đang đánh giá thấp năng lực SQLite và vượt quá nhu cầu đồng thời cho các công ty nhỏ. Mọi người cần phải cởi mở. Thực hiện theo các công thức không phải là cách duy nhất để đi. Bây giờ chúng tôi có một sản phẩm không có cạnh tranh trong thị trường của chúng tôi.
Maniero

Câu trả lời:


25

SQLite là một cơ sở dữ liệu nhúng và nó không được sử dụng làm DB máy khách / máy chủ. Nếu bạn thực sự muốn, bạn có thể sử dụng SQLitening .

SQLitening là gì

SQLitening là một triển khai máy khách / máy chủ của cơ sở dữ liệu SQLite rất phổ biến.

SQLitening là thư viện của lập trình viên ở dạng Win32 DLL tiêu chuẩn. Nó được cài đặt như một dịch vụ Windows tiêu chuẩn. Ngoài chế độ máy khách / máy chủ, thư viện cho phép lập trình viên cũng truy cập cơ sở dữ liệu SQLite ở chế độ cục bộ. Trong cả hai chế độ (cục bộ hoặc máy khách / máy chủ), cơ sở dữ liệu cực kỳ nhanh và mạnh mẽ. - Nguồn: http://www.planetsquires.com/sqlite_client_server.htmlm


4
Bạn có thể xây dựng hoặc cung cấp một liên kết đến SQLitening là gì không? Liên kết đó đi đến một diễn đàn và nó không có thông tin gì về nó thực sự là gì.
develCuy

17

Như đã nêu trước đây sqlite không phải là một ứng dụng máy khách-máy chủ và nó không được xây dựng cho các hoạt động đồng thời cao.

Tuy nhiên, bạn có thể "biến nó thành máy khách-máy chủ", nếu bạn sử dụng ssh.

ssh user@host sqlite3 databasefile select * from table

công trinh.


1
Đây có được coi là "máy khách-máy chủ" không vì bạn đã mã hóa kết nối?
Robert Harvey

Không, đó chỉ là do một mạng giữa máy lưu trữ db và máy truy cập db.
ddeimeke

4

Không, SQLite không trình bày điểm cuối mạng - nó chỉ có thể truy cập thông qua hệ thống tệp. Nó không hỗ trợ truy cập đồng thời từ nhiều quy trình trên cùng một máy nhưng ở mức độ chi tiết rất thô (DML khóa toàn bộ bảng). Vì vậy, bạn có thể có hàng tá quy trình Apache httpd với cơ sở dữ liệu SQLite trên đĩa cục bộ mở, tất cả đều hoạt động SELECTvà nó sẽ hoạt động tốt. Nhưng thực sự, đó là công cụ sai cho công việc - Tôi sẽ sử dụng Postgres trong kịch bản này.


1
khóa toàn bộ bảng Chỉ khi bạn đang viết trên đó không đọc nhiều bộ xử lý mới có thể đọc từ cùng một bảng;)
ucefkh

3

Phần mềm Paradigma giới thiệu Valentina Server 6.0 (hiện đang thử nghiệm bản beta), là 3 trong 1:

  • Máy chủ DB Valentina
  • Máy chủ SQLite Valentina
  • Máy chủ báo cáo Valentina

SQLite Server sử dụng công cụ SQLite mà không thay đổi, bật WAL. Máy chủ SQLite hoạt động trên 3 HĐH: Mac, Win, Linux .

Bạn có thể sử dụng ứng dụng Valentina Studio (miễn phí) để quản lý Máy chủ DB này, cũng như myQuery, postgreQuery, SQLite, MS SQL. Nó cũng hoạt động như ứng dụng C ++ gốc được tạo trên 3 HĐH.

Máy chủ SQLite chứa các tính năng như: SSL, ACL, Sao lưu, API REST, Kênh thông báo, JSON, XML.

Ngay bây giờ quyền truy cập vào máy chủ này có thể được thực hiện từ C ++, Xojo và LiveCode. Sẽ sớm được thêm PHP, Java, .NET.

Phiên bản miễn phí của Valentina Server bao gồm

  • 10 kết nối đến SQLite DB
  • 5 kết nối đến DB Valentina
  • 5 kết nối đến Báo cáo Valentina

Chi tiết bạn có thể đọc trong bài viết .


2

SQLabs cung cấp một sản phẩm thương mại có tên là cubeQuery có thể phù hợp với nhu cầu của bạn.


1

Bạn có thể hack một cái gì đó cùng nhau bằng netcat , nhưng tôi không thể tưởng tượng nó sẽ là một giải pháp rất thanh lịch.


-5

Bạn có thể sử dụng một dịch vụ tương tự như dropbox . Có giải pháp tự lưu trữ. Tuy nhiên, SQLite3 không được tạo cho mô hình máy khách-máy chủ. Bạn sẽ tốt hơn với các giải pháp khác được phát triển dựa trên mô hình máy khách-máy chủ.


5
Dropbox và các dịch vụ đồng bộ hóa tệp khác KHÔNG phải là giải pháp cho vấn đề này. Dropbox không chứa bất kỳ logic nào liên quan đến việc hợp nhất các thay đổi trong cơ sở dữ liệu mà nhiều người dùng đang viết đồng thời. Kết quả cuối cùng sẽ bị mất dữ liệu, công việc và thời gian.
jptros
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.