질문하기 전에 먼저 SQLite에 대한 내 생각을 설명하겠습니다.
작고 빠르며, 더 중요한 것은 실제로 필요한 기능 만 갖춘 도구를 좋아합니다. 그래서 나는 SQLite를 좋아하고 MS-SQL을 조금 덜 좋아합니다.
예를 들어, MS-SQL에는 훨씬 더 많은 기능, 확장 성 등이있을 수 있지만 운이 좋지 않으면 설치하기가 어려울 수도 있습니다. 물론, 어려운 설치가 특정 데이터베이스를 선택하지 않는 이유는 아닙니다.
나를 잘못 이해하지 마십시오 : MS-SQL은 양질의 제품입니다. 저는 MS-SQL에 매우 경험이 있습니다. 나는 전문가로서 제품을 잘 이해합니다. 실제로 필요하지 않은 일부 환경에서는 선호 하지 않습니다 (= 10-15 미만의 많은 사용자).
실제로 사용하는 데이터베이스 기능은 어느 정도입니까? 내 경험상 종종 일반적인 SQL (SELECT, INSERT 및 UPDATE) 일뿐입니다.
나는 SQLite를 좋아한다. 매우 빠릅니다. "설치"가 매우 쉽습니다. SQLite가 할 수있는 것보다 더 많은 것을 할 수 있다고 생각합니다. 단일 프로세스 / 단일 사용자 애플리케이션에만 사용하는 이유는 무엇입니까? 결국 : 많은 응용 프로그램이 지속적으로 데이터베이스에 액세스하지 않습니다.
예를 들어 15 명의 사용자가있는 ERP 응용 프로그램을 생각해보십시오. 왜 SQLite를 사용할 수 없습니까? 직접 경험해 보자. 전문적인 경험에서 이런 종류의 응용 프로그램 사용자는 응용 프로그램을 사용하는 총 시간의 약 5-10 % 동안 데이터베이스에 액세스합니다. 다른 90-95 %는 화면에서 정보를보고 그리드 / 폼에 데이터를 입력하고 1 초 이하의 데이터베이스 시간을 입력을 저장하는 경우입니다. Fe : 1,5 분의 입력 시간과 1 초의 절약 시간.
"저장 시간"동안 SQLite 데이터베이스 파일이 잠긴 경우 데이터베이스에 액세스해야하는 다른 사용자는 기다리지 만 대기 시간이 매우 작기 때문에 알 수 없습니다 (알릴 수 없음). 코드에서는 예외를 피하기 위해 데이터베이스의 가능한 "사용 중"시간을 처리해야하지만 그렇게 어렵지는 않습니다.
나와 똑같이 생각해야하는 일부 사람은 SQLite를위한 클라이언트-서버 솔루션 인 SQLitening 도 구축했습니다 . 이것은 나 자신을 속이지 않을 수도 있다는 확신을 갖게 해주었다.
물론 SQLite가 적합하지 않은 데이터베이스 집약적 인 응용 프로그램이 있습니다. 그러나 지금 생각하면 많은 다중 사용자 응용 프로그램이 15 명을 초과하지 않으면 SQLite로 잘 수행해야합니다.
많은 고객이 하드웨어에 많은 비용을 소비하지 않기 때문에 Exchange, SQL, 클라이언트 등 모든 것이 포함 된 단독 서버를 자주 만나게되므로 거의 "숨을 쉬지"않습니다. 시스템 요구 사항이 높지 않은 제품을 제공 할 수 있다면 고객은 만족할 것입니다. SQLite는 무게를 추가하지 않지만 적어도 MS-SQL은 그다지 중요하지 않습니다. 따라서 무료, 저렴하거나 설치하기 쉬운 SQLite를 선택하지 않을 것입니다. 실용적 / 기술적 인 이유로 선택합니다.
참고 : 제 직업에서 평균 5 ~ 6 명 정도가 제품을 사용하는 고객에게 제품 (사용자 정의 및 표준, 대부분 ERP 관련)을 판매합니다. 일부 예외는 있지만 10-15 명 이하의 사용자입니다.
질문 : 내가 설명한 예제와 같은 일부 다중 사용자 응용 프로그램에 SQLite를 사용할 수 있다고 생각하고 있습니까? 알아야 할 기술적 단점이 있습니까? 올바른 선택을하는 데 도움이되는 귀하의 경험 (부정적 또는 긍정적)은 무엇입니까?
업데이트 : 다른 데이터베이스에 대한 부정적인 판단으로 보지 마십시오. 그들은 대부분 모든 훌륭한 제품입니다. 여기에 내 생각을 공유하고 이것에 대한 당신의 의견에 관심이 있습니다.