데이터베이스 크기에 대해서는...
뉴스그룹들을 보면, 몇 기가 정도의 크기로 디비를 운영하고 있는 사용자들은 흔하더군요.
하지만, 윈도우에서 FAT32에서는 파일이 4GB이상으로 커지면 깨진다고 합니다. 이건 FAT32의 문제고요.
FAT16에서는 2GB가 한계라고 하는군요. NTFS에서는 2TB까지 커질 수 있다고 합니다.
참고로... 다음의 사이트에서는 델파이용 검색 컴포넌트 테스트용으로 볼랜드와 MS 관련 뉴스그룹을 몽땅 저장해놓고
있는데요. 이 사이트가 파이어버드를 쓰는 걸로 알고 있습니다. 현재까지 저장된 크기가 볼랜드쪽은 11기가로 6백만 레코드,
MS쪽은 22기가로 9백만 레코드라고 하는군요.
http://www.tamaracka.com/
뉴스그룹에서 인터베이스/파이어버드를 사용하는 사용자들의 사례에서 레코드 갯수로 보면 3천만 레코드를 쓰고 있다는
글도 있더군요.
인터베이스나 파이어버드 자체는 MMDB가 아니라 파일 기반 디비이기 때문에 MMDB처럼 운영하고 싶다는 말씀이
무슨 말씀인지 모르겠습니다. 그리고 국내에서 게임 서버용도로 쓰시는 사례를 들어본 적이 없어 세번째 질문도 대답하기
어렵군요.
하지만 적어도 속도에 있어서는 상당히 빠른 편이기 때문에, 만약 파이어버드에서 속도면의 문제가 생긴다면 다른 선택은
MMDB나 혹은 MySQL에서 MyISAM으로 쓰는 방법밖에 없을 걸로 생각됩니다. MMDB를 제외하면 RDBMS중에는 아무래도
MyISAM보다 빠른 방법은 없는 거 같으니까요. 하지만 MySQL에서 MyISAM을 쓰는 경우에는 트랜잭션은 포기해야 한다는
단점이 있죠.
그럼...
김호광 님이 쓰신 글 :
: 답변 감사합니다.
:
:
: 저희 자체 프로젝트에 함 사용해봐야 겠네요.
:
: 온라인 게임쪽에서 한번도 사용해 본 경험이 없어서 많이 불안한 것도 사실입니다. 일단 프로젝트에서 사용하여 볼 예정입니다. 당분간은 주력 RDBMS로 사용하기는 힘들 것 같네요 내부 테스트 거치고 외부 용역에 투입해서 게임 업계에 불사조의 저력을 보여야겠군요 ㅎㅎ
:
: 가장 중요한 것들은 자료를 모아야하는 일이네요 제대로 사용하기 위해서 여러 가지 준비를 해야할 것 같습니다.
:
: 아, 가장 중요한 몇 가지 질문 있습니다.
:
: 1. 2~3GB 정도의 DB 운영이 가능한지요?
: 2. MMDB 형태로 해서 좀 더 빠르게 운영할 수도 있는지요?
: 3. 게임 서버처럼 빈번하게 데이터를 리얼타임으로 주고 받는 시스템에도 적당한지요?
:
: 사실 innodb를 쓰기에도 짜증나고 그렇다고 ms-sql를 쓰자니 비용 문제가 대두되서 여러가지로 곤란한 점이 있습니다.
:
: 이번에 한번 테스트하고 점차 게임 업계로 퍼트려 볼 생각입니다. ^^
:
: 그럼 수고하세요 ^^
:
: 박지훈.임프 님이 쓰신 글 :
: : 장점은, 많은데.. 금방 생각나는 것만 몇가지 써보겠습니다.
: :
: : 먼저, 가장 큰 장점은 완전히 무료다! 라는 거죠. 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를 변경하려고 시도하는 중이랍니다.
: : :
: : : 잘 되면 외주 나가는 모든 프로젝트를 변경할 생각입니다.
: : :
: : : 고수님들의 좋은 답변 부탁 드립니다.