Sqlite3 및 Javascript로 엄청나게 빠른 데이터 제공

Sqlite3 및 Javascript로 엄청나게 빠른 데이터 제공



나는 SQLite3를 좋아합니다. 개인 프로젝트를 위한 사실상의 데이터베이스입니다. 사람들이 가져오는 것을 보았습니다millions of rows per minute. NOSQL Database으로 사용되는 것을 보고 깜짝 놀랐습니다. SQLite 데이터베이스를 호스트할 수 있다는 점이 마음에 듭니다everywhere. SQLite3의 다재다능함은 놀랍습니다.

SQLite3를 웹 서버와 함께 사용할 때의 성능을 살펴보고 싶었습니다. 과연 2022년 유럽 에너지 위기와 함께 비용 효율적인 솔루션을 찾는 것이 중요합니다.

Go, Ruby, JavaScript, Rust 등 다양한 프로그래밍 언어를 실험했습니다.

내 목표: 달성 가능한 동시성을 현명하게 파악하는 것입니다.

코드 복잡성과 속도의 균형을 맞췄습니다. 각 구현에 너무 많은 시간을 할애하고 싶지 않았습니다. 내가 사용한 SQLite 쿼리는 간단합니다. 하나의 삽입 문, 하나의 쿼리 문. 이것은 SQLite 성능을 확인하기 위한 테스트가 아닙니다. 나는 SQLite가 빠르다는 것을 안다. 웹 서버에 대한 SQLite 쿼리의 차단 영향을 확인하기 위한 테스트입니다.

JavaScript 결과는 저를 놀라게 했습니다.

마디:
  • sqlite 삽입 사용: 초당 16k 요청
  • sqlite 선택 사용: 초당 31k 요청



  • 녹:
  • sqlite 삽입 사용: 초당 14k 요청
  • sqlite 선택 사용: 초당 61k 요청

  • Rust는 삽입 시 느리지만 쿼리 시에는 두 배 빠릅니다.



    bun.sh(새로운 자바스크립트 런타임):
  • sqlite 삽입 사용: 초당 21k 요청
  • sqlite 선택: 초당 75k 요청



  • 뭐? bun.sh는 삽입 시 두 배 빠르고 선택 시 더 좋습니다.
    우리는 누구나 하나의 서버에서 초당 수만 건의 요청을 처리할 수 있는 시대에 살고 있습니다(내가 사용한 것은 3년 된 것입니다).
    멋진 데이터베이스가 필요하지 않습니다.
    동일한 호스트에서 호스팅되는 sqlite3 데이터베이스면 충분합니다.

    나는 들었던 것을 기억한다

    The engineering under JavaScript is really pretty phenomenal
    

    bun.sh는 JavaScript를 위한 경이로운 엔지니어링의 새로운 예입니다.
    놀랍도록 빠른 모든 JavaScript 최적화를 Sqlite3와 결합하면 컴파일된 언어와 동등한 성능을 얻을 수 있습니다.

    더 빨리 녹이 생길 수 있다고 생각합니다.
    그러나 구현 세부 사항을 파악하려면 더 많은 작업이 필요합니다.
    bun.sh + SQLite3는 내 모든 성능 요구 사항에 충분합니다.

    참조



  • Javascript에 대한 John Carmack:
  • bun.sh
  • 엄청나게 빠른 ThePrimeagen
  • 내 테스트 코드: https://github.com/aurelienbottazini/sqlite-performance-test
  • Insert millions of rows per minute
  • SQLite as a NOSQL Database
  • Host SQLite on Github pages
  • 좋은 웹페이지 즐겨찾기