나는 오랫동안 SQLite에 대해 알고 있었고 그것이 빨리 타오르는 것을 알고 있지만 프로덕션 서버에서는 시도하지 않았습니다. 나는 실패하기 전에 얼마나 많은 트래픽을 처리 할 수 있는지에 대한 확실한 추정치를 찾지 못했습니다.
누구든지 이것에 대한 숫자 나 기사가 있습니까?
나는 오랫동안 SQLite에 대해 알고 있었고 그것이 빨리 타오르는 것을 알고 있지만 프로덕션 서버에서는 시도하지 않았습니다. 나는 실패하기 전에 얼마나 많은 트래픽을 처리 할 수 있는지에 대한 확실한 추정치를 찾지 못했습니다.
누구든지 이것에 대한 숫자 나 기사가 있습니까?
답변:
불행히도로드 기능에 대한 수치는 없지만 성능 제한 요소에 대한 몇 가지 의견이 있습니다.
SQLite의 속도는 디스크 속도와 많은 삽입 / 업데이트가 있는지 (예 : 쓰기 액세스) 여부에 영향을받습니다. 쓰기 잠금은 디스크 회전 속도에 의해 제한됩니다
트랜잭션은 기본적으로 시작되지만 트랜잭션 을 시작하고 커밋 하면 성능이 향상됩니다 . 프로그래밍 방식으로 트랜잭션을 처리 할 때 매우 빠른 대량 삽입이있었습니다.
일반적으로 데이터를 읽는 경우 내 경험에서 좋은 성능을 얻습니다. 따라서 SQLite는 데이터베이스 서버 읽기, 특히 원격 쿼리 또는 복잡한 쿼리를 저장하는 캐싱 시스템으로 사용할 수 있습니다.
데이터베이스 서버보다 적은 리소스를 사용하므로 웹 서버 및 응용 프로그램 코드에 더 많은 리소스를 확보함으로써 사이트 성능에 영향을 줄 수 있습니다.
여러 동시 쓰기가 필요한 경우 데이터베이스 서버 (예 : MySQL, Postgres)가 더 나은 서비스를 제공 할 수 있습니다
으로 Devrim가 100,000 사용자 주위에 SQLite는 사이트의 상태를 언급 한 / 일 잘해야한다. Trac 시스템에는 쓰기가 필요하므로이 경우 성능이 느려질 수 있습니다.
이 좋은 답변에 덧붙일 요점이 있습니다.
현재 버전의 SQLite에는 WAL (Write-Ahead Logging)이 있으므로 읽기와 쓰기가 동시에 진행될 수 있습니다. 따라서 이전 답변에서 언급 한 전통적인 단일 작가 제한은 더 이상 존재하지 않습니다. 프로덕션에서 WAL을 아직 보지 못했기 때문에 WAL이 얼마나 잘 확장되는지 언급 할 수 없습니다.
WAL 사용 여부에 관계없이 SQLite 데이터베이스가 읽기 전용 (또는 배치 업데이트)이고 RAM에 적합하면 (OS에는 버퍼에 보관하기에 충분한 여유 RAM이 있음) 프로덕션 웹 응용 프로그램에서 매우 잘 확장 될 수 있습니다. 나는 개인적으로 성능, 확장 성 및 견고성에 대해 회의적이지만 9 개월 후에 는 시스템의 가장 복잡한 부분 까지도 잘 작동하는 것으로 입증되었습니다 .
Sqlite는 응용 프로그램에 포함하기에 적합하며 이것이 바로 설계된 것이지만 "매우 빠르지는"않습니다. 나는 내 자신의 여러 응용 프로그램에 사용합니다. 순전히 작동하는 응용 프로그램을 제공하기 위해 다른 컴퓨터에 복사 할 수있는 두 파일 만 있으면 편리합니다. 동일한 구조, 인덱스 등을 사용하여 MySQL에 대한 테스트를 수행하면 소규모 데이터베이스의 경우에도 Sqlite가 상당히 느려집니다. 데이터베이스 크기가 증가함에 따라 성능 차이가 커질 것으로 예상하지만 100MB 미만의 데이터베이스에서만 사용했기 때문에 확실하게 말할 수는 없습니다.
Sqlite는 전통적인 클라이언트 / 서버 DB 애플리케이션이 아닙니다. 본질적으로 다른 응용 프로그램에 포함 된 라이브러리입니다. 단일 사용자 데스크톱 응용 프로그램을 위해 설계되었습니다. 전체 DB가 쓰기에 잠겨 있기 때문에 다중 사용자 환경에서 일종의 독립형 MySQL / PostgreSQL / MS-SQL 대체로 사용하려고하지 마십시오. 경부 하에서도 성능 문제를 일으킬 수있는 경합 문제를 처리하게됩니다.