NoSQL 데이터베이스가 레거시 SQL 접근 방식에 비해 그 가치가 입증되었으므로, 다음 질문은 "어떻게 하면 프로세스를 최대한 최적화할 수 있을까요?"가 될 수밖에 없습니다. 많은 데이터베이스가 워크로드를 최적화하기 위해 정적 규칙 기반 최적화(RBO)를 사용해 왔지만 여기에는 한계가 있습니다. 비용 기반 최적화(CBO)는 가능한 최소한의 리소스를 사용하여 훨씬 더 민첩하고 자동화된 최적화를 가능하게 합니다. 이러한 관점에서 Couchbase는 비용 기반 최적화 기술을 특허 출원 중이라는 기쁜 소식을 전하게 되어 기쁘게 생각하며, Couchbase Server 6.5의 프리뷰로 JSON용 비용 기반 최적화 도구를 소개합니다.
그렇다면 왜 RBO 대신 CBO를 선택해야 할까요? 마을 반대편에서 열리는 회의에 늦는다고 상상해 보세요. Google 지도를 확인하여 훈련되지 않은 사람의 눈에는 가장 빠른 경로로 보이는 곳을 찾습니다. 하지만 막상 가보면 그 경로가 교통 체증과 도로 폐쇄, 심지어 어떤 지점에서는 일방통행로를 따라 엉뚱한 길로 가는 것을 발견하게 됩니다.
당연히 Google 지도와 같은 앱은 최단 거리의 경로를 자동으로 선택하는 대신 여정에 영향을 미치는 요소를 고려할 것으로 기대할 것입니다. 교통 체증을 피하고 여정에 영향을 미칠 수 있는 모든 요소를 기반으로 동적 경로를 제안해 줄 것으로 기대할 수 있습니다. 최단 이동 시간, 최소 연료 사용량, 최저 요금 또는 통행료 등 가능한 가장 효율적인 여정을 기대할 수 있습니다.
CBO는 데이터베이스 워크로드에 대해 동일한 역할을 수행합니다. 예를 들어, "가능한 가장 짧은 여정 제공"은 위의 첫 번째 시나리오를 생성하는 것과 같이 RBO는 항상 동일한 엄격한 규칙을 따라야 합니다. 이에 비해 CBO는 메타데이터와 통계를 사용하여 메모리, CPU 또는 I/O와 같은 리소스(위의 예에서는 시간)를 가장 적게 사용할 수 있는 쿼리 실행 계획을 선택합니다. 궁극적으로 스마트한 CBO는 잠재적인 장애물을 피하면서 항상 가장 비용 효율적인 옵션을 제공합니다.
카우치베이스의 JSON용 비용 기반 최적화 도구는 쿼리 대기 시간을 단축하는 동시에 개발자의 작업을 더 쉽게 만들어 줍니다. CBO는 기존의 규칙 기반 최적화를 보완하는 기능으로 제공되어 많은 수의 사례에 대한 쿼리 효율성을 개선합니다. 이는 쿼리 지연 시간에 영향을 미치는 RBO보다 더 나은 인덱스 선택, 더 나은 조인 유형 선택, 처리 자체의 더 나은 순서를 통해 달성할 수 있습니다. 본질적으로 개발자는 쿼리를 작성하기만 하면 CBO가 최선의 방법을 결정하게 됩니다.
JSON용 CBO에 대해 자세히 알아보려면 다른 블로그를 살펴보세요:
적은 것이 더 많습니다: 왜 비용 기반 옵티마이저인가?
Couchbase N1QL용 비용 기반 옵티마이저(JSON용 SQL)
기타 참고 자료: