장점은, 많은데.. 금방 생각나는 것만 몇가지 써보겠습니다.
먼저, 가장 큰 장점은 완전히 무료다! 라는 거죠. MySQL처럼 어떻게 하면 유료고 불법이다, 그런 거 전혀 없습니다.
무조건 무룝니다.
두번째, 작습니다. 설치를 위해 필요한 파일도 불과 2~3메가 정도로 작고, 메모리를 차지하는 용량도 작습니다.
이게 RDBMS라고는 믿기지가 않을 정도로 작습니다. 필요하면 다른 애플리케이션을 배포할 때 설치 프로그램에 같이
넣어서 배포하기도 쉽습니다. 또 데이터가 RLE 압축이 되기 때문에 데이터 파일도 작습니다.
세번째, 빠릅니다. 이건 관점에 따라 다를 수도 있고 또 테스트하는 방법에 따라 다르겠지만, 써보시면 금방 느끼실 겁니다.
외국 MySQL 사용자들이 하는 말로는 트랜잭션 지원을 위해 MySQL에서 InnoDB를 사용하게 되면 파이어버드가
MySQL보다 더 빠르다고 하더군요. (아시다시피 파이어버드는 MySQL과 달리 기본 상태에서 트랜잭션 지원합니다)
그리고 로컬 디비인 액세스보다도 빠르다는 것은 일반적으로 인정되는 사실인 것 같습니다. (파라독스보다는 느립니다)
네번째, 필요하다면 로컬 디비로 쓸 수도 있습니다. 파이어버드 임베디드 서버라는 걸 쓰면 됩니다.
RDBMS를 로컬 디비로 써야 할 경우는 몇가지 있을 수 있는데, 예를 들면 로컬 디비처럼 외부에서 네트워크로 접근할 수
없고 특정 애플리케이션에서만 독점적으로 접근해야 하면서도 업무의 특성상 고급 SQL이 필요한 경우입니다.
임베디드 서버의 기능이나 성능은 일반 파이어버드 서버와 완전히 똑같고, 배포도 가볍게 할 수 있습니다.
다섯번째, UDF라고 하여 사용자 정의 함수를 dll로 만들어 쓸 수 있습니다. 이건 델파이나 C++빌더, 비주얼 C++로 할 수
있고 그리 어렵지 않습니다. (MS SQL은 이번 2005 버전에서 지원하기 시작한다고 들은 것 같네요)
여섯번째, MySQL만큼 다양한 플랫폼 버전이 나와있습니다. 윈도우나 리눅스는 말할 것도 없고 HP UX나 매킨토시,
솔라리스 등등등 사용자가 어느정도 되는 플랫폼에는 다 포팅되어 있습니다.
일곱번째, 백업이 정말 간편합니다. 파이어버드 디비로 일반 서비스를 하는 동안에도 백업을 해도 되고, 그 경우에도
그렇게 큰 부하가 추가되지 않으므로 아주 러시아워 시간대만 피한다면 백업은 수시로 해도 됩니다.
물론 단점도 없지 않습니다.
첫번째, 아직 대중화가 덜 되어 기술 자료가 적은 편입니다. 하지만 최근 들어 파이어버드가 급속도로 전파되고 있더군요.
올해 초 에반스 데이터 그룹의 조사에 따르면, 파이어버드가 급성장해서 MySQL을 위협하는 정도라고 합니다.
이렇게 성장세를 이어가면 자료의 부족은 계속 나아질 것으로 생각되고요.
두번째, 서브 쿼리가 안됩니다. 이건 꽤 불편한데... 현재 알파테스팅이 진행중인 파이어버드 2.0에는 추가되었습니다.
(하지만 알파 테스트 버전은 계속 버그 패치중이므로 불편하다고 쓰기에는 위험이 너무 큽니다)
세번째, 사소할 수도 있고 심각할 수도 있는 문제지만, 스토어드 프로시저 안에서 트랜잭션을 쓸 수 없습니다.
트랜잭션은 무조건 프로시저를 호출하는 클라이언트 프로그램쪽에서 시작하고 커밋해야 합니다.
이건 2.0에서 개선 예정인지 어떤지는 알아보지 않았습니다.
네번째, 이건 어떤 디비이든 주력 디비를 바꾸려면 어쩔 수 없는 부분이긴 하지만 현실적인 부분이죠. 다른 RDBMS와
표준 안시 SQL 문법 외의 다른 문법들이 꽤 다릅니다. 물론 MS SQL과 오라클도 이정도로 다르고, MySQL도 마찬가집니다.
MS SQL을 쓰셨다면 스토어드 프로시저에서 쓰는 문법이 많이 달라서 특히 불편을 많이 느끼실 수 있습니다.
안정성 부분은....
지금까지 파이어버드나 그 전신인 인터베이스가 실행중에 뻗는다든지 하는 문제는 들어보지 못했고, 제가 쓰면서도
전혀 겪어보지 못했습니다. 하지만 예전 버전의 인터베이스를 썼던 개발자들중 일부가 디비 파일이 깨지는 경우가 있다는
얘기가 몇번 나온 적 있습니다. 하지만 이 경우는 모두 서버가 갑작스레 전원이 나간 경우였습니다. 더 안정적인 디비도
있을 수 있지만 기본적으로 하드웨어가 갑자기 꺼져버리는 데 대해 완벽한 해결책은 어디에도 없겠죠. 물론 복구 방법은
있습니다.
그럼...
김호광 님이 쓰신 글 :
: 파이어버드로 온라인 게임 RDBMS로 사용하려고 합니다.
:
: MySQL과 MS-SQL만 사용해서 그러는데 어느 정도 안정성과 성능을 가지고 있는지 궁금합니다.
:
: 1. 장점
:
: 2. 윈도우 플랫폼에서의 안정성
:
: 3. 단점
:
: 4. 유지 보수의 특징
:
: 사용하는 개발 환경은 .net 2003과 BCB 6( 서브 툴) 입니다.
:
: 제가 지식 검색이 약하네요 ...-;;;
:
: MS-SQL에서 RDBMS를 변경하려고 시도하는 중이랍니다.
:
: 잘 되면 외주 나가는 모든 프로젝트를 변경할 생각입니다.
:
: 고수님들의 좋은 답변 부탁 드립니다.
|