코딩스토리/개발관련

데이터베이스 비교 - 오라클, MySQL(MariaDB), PostgreSQL

Tech&Fin 2022. 2. 4. 17:33
반응형

Tech&Fin에서는 현재 파이썬을 이용하여 비트코인 자동매매 프로그램을 개발하는 과정을 포스팅하고 있는데요.

 

과정을 진행하면서 웹소켓 데이터를 데이터베이스에 저장하여 활용하는 포스팅도 진행중에 있습니다. 이 때 어떤 데이터베이스를 사용해야 할 지 조금 고민이 될 수 있는데요.

 

이번 시간에는 여러가지 데이터베이스의 특성을 비교해 보고 어떤 데이터베이스를 선택하여 프로젝트를 진행하면 좋을지에 대해서 알아보는 시간을 가져 보겠습니다.

 

 

목차 - 클릭하면 이동합니다.

     

    데이터베이스 비교

    데이터베이스를 선택할 때 가장 중요한 것은 목적에 맞는 데이터베이스를 선택하는 것인데요.

     

    예를 들어 다수의 유저가 동시에 접속하여 데이터베이스의 내용을 조회하는 서비스는 다중 접속에 유리한 데이터베이스를 사용하는 것이 좋으며 사용자가 접속하지는 않지만 대량의 데이터를 수집하여 저장하고 통계를 작성하는 등의 목적에는 데이터 저장 속도가 빠른 데이터베이스를 사용하는 것이 좋습니다.

     

    그 밖에도 데이터베이스마다 SQL 쿼리를 작성하는 부분이 조금씩 다르기 때문에 사용해 본 익숙한 데이터베이스를 선호할 수도 있습니다.

     

    지금부터 여러가지 데이터베이스의 특징을 살펴 본 후 Tech&Fin에서 앞으로 진행할 비트코인 자동매매 프로젝트에서 사용할 데이터베이스를 선택해 보도록 하겠습니다.

     

    오라클 데이터베이스

    오라클 데이터베이스는 성능이 뛰어나고 여러가지 기능 및 백업등의 안전성까지 모두 갖춘 데이터베이스입니다. 그래서 대부분의 기업에서 오라클 데이터베이스를 사용하고 있는데요.

     

    단점은 라이센스가 상당히 비싸고 유지보수 비용 역시 매우 비싸다는 점입니다. 무료 버전이 있긴 하지만 용량 및 기간의 제한이 있어서 연습용으로 사용할 수는 있지만 정식 서비스를 제공하기에는 무리가 있습니다.

     

    MySQL(MariaDB)

    MySQL은 오픈소스라서 무료로 사용할 수 있었던 데이터베이스인데요. 아쉽지만 얼마전부터 상업용으로 사용할 때는 유료로 변경 되었습니다. 하지만 해당 팀에서 같은 소스를 가지고 MariaDB라는 것을 만들었는데 사용법이 MySQL과 거의 비슷하지만 상업용으로 사용하는데도 무료라는 장점이 있습니다. MySQL에서 나와 MariaDB를 만든 후에는 같은 소스에서 출발했지만 서로 다른 개발을 진행하기 때문에 완전히 같지는 않고 점점 달라지는 추세이긴 합니다.

     

    속도 및 성능 모두 일반적인 수준을 만족하지만 복잡한 쿼리에서는 성능이 저하됩니다. 상위 몇개의 레코드를 가져오는 등의 작은 범위 조회에 유리하지만 대량 데이터를 조회할 때는 성능 저하가 발생합니다.

     

    PostgreSQL

    PostgreSQL 역시 오픈소스이며 상업용으로도 무료로 사용할 수 있습니다. 신뢰성과 안정성이 높으며 데이터를 대량으로 입력할 때 성능이 매우 뛰어납니다. 단점으로는 Update 대신 Delete 후 Insert를 하도록 되어 있어 업데이트 속도가 조금 저하된다는 점이 있습니다. 인스타그램이나 스카이프와 같은 기업에서도 사용할 정도로 안정성과 신뢰성이 있는 데이터베이스입니다.

     

    그 밖의 DB

    서버가 없이 로컬에서 파일에 데이터를 저장하는 SQLITE 데이터베이스는 외부에서 접속하려면 복잡한 우회 방법을 거쳐야 하기 때문에 간단한 테스트 목적이 아니면 적합하지 않을 것 같습니다.

     

    MongoDB는 지금까지 알아본 데이터베이스처럼 관계형 데이터베이스(RDBMS)가 아닌 NoSQL이라는 새로운 형태의 데이터베이스 입니다. 다중 접속 및 단순 데이터 조회 및 처리에는 매우 빠른 속도를 자랑하지만 복잡한 통계의 쿼리를 수행할 때는 적합하지 않습니다.

     

    결론

    자금이 충분하다면 오라클 데이터베이스를 유료로 사용하면 제일 좋겠지만 비용이 부담되기 때문에 무료 버전을 사용해서 프로그램을 만들어 보았는데요. 무료로 제공되는 20G 정도의 용량은 많이 부족하여 프로젝트를 진행하기에 적합하지 않았습니다.

     

    오라클 데이터베이스 및 SQLITE, MongoDB를 제외하고 MariaDB나 PostgreSQL에서 선택을 해야 할 것 같은데요. 두 데이터베이스를 비교해 보았을 때 현재 Tech&Fin에서 진행하는 프로젝트는 대량의 데이터를 저장하고 그 데이터를 기반으로 다소 복잡한 쿼리를 이용해서 자료를 추출해야 하기 때문에 MySQL 보다는 PostgreSQL이 조금 더 유리할 것 같다는 판단이 들었습니다.

     

    그래서 추후 포스팅에서 리눅스 서버에 PostgreSQL 데이터베이스를 설치하고 접속하는 방법 및 데이터 저장 방법 등에 대해서 살펴 볼 수 있도록 하겠습니다.

     

    블로그를 구독하면 소식을 조금 더 빨리 받아보실 수 있습니다. 감사합니다.

    반응형