SQLite를 클라이언트-서버 데이터베이스로 사용할 수 있습니까? [닫은]


32

중간 규모 / 트래픽 / 동시성 DB 환경에서 SQLite를 사용할 수있는 기술이나 도구가 있습니까?


3
이것이 유용한 이유를 제시 할 수 있습니까? 그렇지 않으면 나는 그것이 실제 질문이 아닌 것으로 닫을 가치가 있다고 생각합니다. SQLite는 클라이언트 서버 데이터베이스가 아니며 실제로 클라이언트 서버 데이터베이스 가 필요 없는 군중에게 판매 됩니다.
jcolebrand

1
@Eelke 버전 3.7의 WAL 모드 에서는 더 이상 유효하지 않지만 한 번에 하나의 쓰기 만 가능하지만 "리더는 작성자를 차단하지 않으며 라이터는 독자를 차단하지 않습니다"
Jack Douglas

1
우연히도, 위키 백과는 현재이 잘못을 저지른 것 같습니다
Jack Douglas

2
왜? 요구 사항을 정의해야한다고 생각하고 더 적합한 데이터베이스를 찾을 수있을 것입니다.
AK_

3
@AK_ 주요 요구 사항은 완전한 ACID이며 개발 및 사용하기에 매우 간단한 데이터베이스입니다. 우리는 클라이언트-서버로 작동하기 위해 커스텀 버전을 만들었고 그 결과는 놀랍습니다! 사람들은 SQLite 용량을 과소 평가하고 소규모 기업에 대한 동시성 요구를 과대 평가하고 있습니다. 사람들은 마음을 열어야합니다. 레시피를 따르는 것이 유일한 방법은 아닙니다. 이제 우리는 시장에서 경쟁이없는 제품을 가지고 있습니다.
Maniero

답변:


25

SQLite는 내장 데이터베이스이며 클라이언트 / 서버 DB로 사용되지 않습니다. 정말로 원한다면 SQLitening 을 사용할 수 있습니다 .

SQLitening이란 무엇인가

SQLitening은 널리 사용되는 SQLite 데이터베이스의 클라이언트 / 서버 구현입니다.

SQLitening은 표준 Win32 DLL 형식의 프로그래머 라이브러리입니다. 표준 Windows 서비스로 설치됩니다. 클라이언트 / 서버 모드 외에도 라이브러리를 통해 프로그래머는 로컬 모드에서 SQLite 데이터베이스에 액세스 할 수 있습니다. 두 모드 (로컬 또는 클라이언트 / 서버)에서 데이터베이스는 매우 빠르고 강력합니다. -출처 : http://www.planetsquires.com/sqlite_client_server.htm


4
SQLitening이란 무엇입니까? 이 링크는 포럼으로 연결되며 실제로 무엇인지에 대한 단어는 없습니다.
develCuy

17

앞서 언급 한 바와 같이 sqlite는 클라이언트-서버 애플리케이션이 아니며 동시 작업을 위해 구축되지 않았습니다.

그럼에도 불구하고 ssh를 사용하면 "클라이언트 서버로 만들 수 있습니다".

ssh user@host sqlite3 databasefile select * from table

공장.


1
연결을 암호화했기 때문에 이것이 "클라이언트 서버"로 간주됩니까?
Robert Harvey

아니요, 이는 db를 호스팅하는 머신과 db에 액세스하는 머신 사이의 네트워크 때문입니다.
ddeimeke

4

아니요, SQLite는 네트워크 엔드 포인트를 제공하지 않으며 파일 시스템을 통해서만 액세스 할 수 있습니다. 이 수행 동일한 시스템이지만 매우 대단위 수준에서 여러 프로세스 (DML은 전체 테이블을 잠금)로부터의 동시 액세스를 지원한다. 따라서 로컬 디스크에 SQLite 데이터베이스가있는 수십 개의 Apache httpd 프로세스가 모두 열릴 수 있으며 SELECT제대로 작동합니다. 그러나 실제로 작업에 대한 잘못된 도구입니다 .이 시나리오 에서는 Postgres 를 사용 합니다.


1
전체 테이블을 잠급니다. 글을 쓸 때만 많은
프로세서

3

Paradigma Software는 Valentina Server 6.0 (베타 테스트 중)을 1에서 3으로 발표했습니다.

  • Valentina DB 서버
  • Valentina SQLite 서버
  • Valentina 보고서 서버

SQLite 서버는 변경없이 SQLite 엔진을 사용하며 WAL이 활성화되었습니다. SQLite Server는 Mac, Win, Linux의 3 OS 에서 작동합니다 .

Valentina Studio (무료) 애플리케이션을 사용하여이 DB 서버와 mySQL, postgreSQL, SQLite, MS SQL을 관리 할 수 ​​있습니다. 또한 3 OS에서 네이티브 C ++로 만든 응용 프로그램으로 작동합니다.

SQLite 서버에는 SSL, ACL, 백업, REST API, 알림 채널, JSON, XML과 같은 기능이 있습니다.

C ++, Xojo 및 LiveCode에서이 서버에 액세스 할 수 있습니다. 곧 PHP, Java, .NET이 추가 될 예정입니다.

Valentina Server 무료 버전에는

  • SQLite DB에 10 개의 연결
  • Valentina DB에 5 개의 연결
  • Valentina Reports에 5 개의 연결

당신이 기사 에서 읽을 수있는 세부 사항 .



1

netcat을 사용하여 함께 해킹 할 수는 있지만 매우 우아한 솔루션이라고는 상상할 수 없습니다.


-5

dropbox 와 비슷한 서비스를 사용할 수 있습니다 . 자체 호스팅 솔루션이 있습니다. 그러나 클라이언트 서버 모델에 대해 SQLite3이 작성되지 않았습니다. 클라이언트-서버 모델을 기반으로 개발 된 다른 솔루션을 사용하는 것이 좋습니다.


5
Dropbox 및 기타 파일 동기화 서비스는이 문제에 대한 해결책이 아닙니다. Dropbox에는 여러 사용자가 동시에 쓰는 데이터베이스의 변경 사항을 병합하는 것과 관련된 논리가 없습니다. 결과적으로 데이터, 작업 및 시간이 손실됩니다.
jptros
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.