데이터베이스
MySQL과 Postgresql의 차이
흰색남자
2023. 2. 20. 15:25
둘 다 RDBMS라는 점은 동일하지만 프로세스를 다루느냐, 쓰레드를 다루느냐에서 차이가 나옵니다.
PostgreSQL은 프로세스 기반, MySQL은 쓰레드 기반으로 작동합니다.
- PostgreSQL
PostgreSQL은 각각의 연결을 처리하기 위해 새로운 프로세스를 생성합니다. 이렇게 함으로써 각각의 연결이 서로 영향을 주지 않도록 보장할 수 있으며, 안정적으로 작동할 수 있습니다. 각각의 프로세스는 독립적인 메모리 공간을 가지고 있기 때문에 안정적으로 데이터를 보호할 수 있습니다. 또한 PostgreSQL은 WAL(Write Ahead Logging)이라는 기술을 사용하여 데이터의 일관성을 유지할 수 있습니다. 이러한 이유로 PostgreSQL은 안정적인 대규모 데이터베이스 처리에 적합합니다.
- MySQL
MySQL은 각각의 연결을 처리하기 위해 새로운 쓰레드를 생성합니다. 이렇게 함으로써 각각의 연결이 동시에 처리될 수 있으며, 이에 따른 성능 향상을 기대할 수 있습니다. 쓰레드 기반으로 작동하므로 PostgreSQL과 달리 각각의 쓰레드는 같은 메모리 공간을 공유하며, 이로 인해 락 경합(lock contention)이 발생할 가능성이 있습니다. 따라서, MySQL은 대규모 데이터 처리보다는 작은 규모의 데이터 처리에 적합합니다.
따라서, PostgreSQL과 MySQL은 각각의 특성에 따라 프로세스 기반 또는 쓰레드 기반으로 작동하도록 설계되었습니다.