안녕하세요 개발자 여러분, 이것은 이 플랫폼의 첫 번째 게시물입니다! ?
Express.js와 SQL을 사용하면서 겪었던 놀라운 경험을 공유하고 싶었습니다. 저는 초보 개발자이고, 프로젝트의 API 작업을 하면서 하루에 200,000개가 넘는 API 요청을 처리하고 있었습니다. 처음에는 Express.js API를 사용하여 SQLite 데이터베이스(~400MB)를 설정하고 작업 속도를 높이기 위해 Node.js 캐싱을 사용했습니다.
처음에는 쿼리에 여러 JOIN 및 검색이 포함되었기 때문에 쿼리에 대한 응답 시간은 약 200-300ms였습니다. 그래서 성능을 향상시킬 수 있는지 알아보기 위해 몇 가지 실험을 해보기로 했습니다.
내가 한 일은 다음과 같습니다.
결과는 의외였습니다! 인덱싱 후 여러 JOIN이 포함된 좀 더 복잡한 쿼리 중 일부가 단 3~5ms 만에 실행되었습니다.
이전에는 노드 캐싱을 사용했습니다.
이후, SQLite 인덱스만 사용:
모든 요청에는 캐싱 없이 7~10ms만 소요됩니다.
이제 쿼리가 지속적으로 빨라지고 서버 부하도 줄어듭니다! 처음에는 4GB RAM과 4개의 vCPU를 갖춘 DigitalOcean 드롭릿에서 앱을 실행했습니다. 하지만 SQL 쿼리를 최적화한 후에는 단 2GB의 RAM과 2개의 vCPU만으로 동일한 워크로드를 편안하게 처리할 수 있습니다.
간단하게 들릴 수도 있지만 적절한 SQL 인덱싱을 통해 쿼리 성능이 크게 달라져 더 이상 캐싱에 의존할 필요가 없게 되었습니다. ?
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3