어느 것이 더 나은 H2 또는 HSQLDB입니까? [닫은]


85

HSQLDB 2.0이 곧 출시 될 예정입니다. 내가 아는 한 대부분의 사용자가 HSQLDB보다 H2를 선호하기 때문에 H2보다 성능이 좋을지 궁금합니다. HSQLDB 2.0의 MVCC 지원에 관심이 있습니다. 나는 H2의 MVCC가 아직 실험적이라는 것을 알게되었습니다. 지원 / 문서화, 동시성, 성능과 관련하여 둘 중 어느 것이 더 낫습니까?


6
사용 사례는 무엇입니까? 데이터에 대해 어떤 쿼리를 수행 하시겠습니까? 데이터가 얼마나 큽니까? 애플리케이션이 읽기 또는 쓰기가 많습니까?
Matt

27
또 다른 완벽하게 좋은 질문이 닫혔습니다.
rtcarlson 2014

질문이 측면 중 하나로 언급 되었음에도 불구하고 답변에 초점을 맞추는 것이 성능 인 것처럼 보이는 것이 매력적입니다. 지원 / 문서, 사용성 (사용 편의성, 직관성, 기능 세트), 안정성 등의 다른 영역에 훨씬 더 관심이 있습니다.
StaxMan

답변:


61

이 답변은 2011 년에 제공했습니다.

우리 회사 는 두 데이터베이스를 모두 지원 하는 데이터베이스 추상화 라이브러리 ( jOOQ )를 개발 합니다. 통합 테스트는 저장 프로 시저 및 함수, 배열, 중첩 선택 등의 호출을 포함하여 많은 기능을 다룹니다 . DML에 관한 한 작은 데이터베이스 HSQLDB 2.1보다 약간 더 빠릅니다 H2 1.3.

그러나 HSQLDB는 DDL 작업과 인스턴스 시작 / 종료시, 심지어 작은 데이터베이스에서도 H2보다 성능이 뛰어납니다 . 이것은 저장된 함수를 저장하는 방법에 따라 다릅니다. 분명히 그것은 다소 jOOQ 특정 "문제"입니다. Thomas Mueller의 의견도 참조하십시오.

반면에 사용자 trashgod에 동의합니다. 합리적인 스키마 및 사용 사례에 대해 성능을 테스트해야합니다.


7
저장된 함수는 "소스 코드"로 저장된 경우에만 재 컴파일됩니다. 이는 HSQLDB에서 사용할 수없는 기능입니다 (내가 아는 한). 미리 컴파일 된 저장 함수를 사용하는 경우 이러한 오버 헤드가 없습니다.
Thomas Mueller 2011 년

2
@ThomasMueller : 고마워, 나는 그것을 몰랐다. 그것은 내 통합 테스트 속도를 크게 높이는 데 도움이 될 것입니다. 그에 따라 대답을 수정하겠습니다. HSQLDB는 더 강력한 IMO 인 PL / SQL과 유사한 절차 언어를 가지고 있습니다. 해당 언어가 ... 컴파일 된 사전 또는 해석의 경우 I는 확실하지만 아니에요
루카스 에더

45

모두 HyperSQLH2 Database테스트가 특정 사용하기에 더 적합 결정하는 가장 좋은 방법이 될 수 있도록, 매우 투명하다. 하나다른 것을 포함하는 비교 가 가능합니다. 그들은 공통된 유산을 공유 하며 둘 다 오픈 소스 입니다.


10
"쓰레기통은 중요한 설계 도구입니다."— loc. cit.
trashgod

3
"유산"링크에 감사드립니다. 그들은 역사를 아주 훌륭하게 요약합니다. 처음에는 HSQLDB (Hypersonic SQL)가 등장한 다음 H2가 등장했지만 HSQLDB와 H2는 동일한 코드를 공유하지 않으며 현재로서는 별도의 프로젝트입니다.
specialk1st

1
@ specialk1st : 맞습니다. 이 경우 유산 은 공통 코드가 아닌 공통 작성자입니다.
trashgod
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.