분류

포럼에서 가장 자주 묻는 5가지 질문

N1QL에서 '무언가'를 수행하는 방법은 무엇인가요?

우선 N1QL에 익숙하지 않다면 몇 분만 투자하여 무료 N1QL 교육을 수강하는 것을 적극 권장합니다. 여기또는 그냥 가지고 놀기 여기.

둘째, 광범위한 질문이므로 몇 가지 일반적인 시나리오를 살펴보겠습니다:

 

문서의 ID와 모든 속성을 선택합니다:

JOIN을 작성하는 방법:

여행 샘플을 사용하여 샌프란시스코 공항(SFO)에서 전 세계 어디로 가는 항공편을 운항하는 회사를 조회해 보겠습니다:

그리고 JOIN 절은 표준 SQL 조인처럼 보이지만, 여기서 유일한 차이점은 온키즈 키워드에 대해 자세히 알아보려면 N1QL 조인을 시각적으로 설명하는 이 문서를 확인하세요.. 카우치베이스 5.5는 다음에 대한 지원도 추가됩니다. ANSI 조인

배열의 항목을 선택하는 방법

다음과 같은 문서가 주어집니다:

10세 이상의 모든 어린이를 선택하려면 다음을 사용할 수 있습니다. UNNEST 키워드를 입력합니다:

 

 

쿼리가 느린 이유는 무엇인가요?

아마도 쿼리가 인덱스에 닿지 않는 것 같습니다. 쿼리를 실행하여 확인할 수 있습니다. 설명 키워드로 설정할 수 있습니다:

위 이미지에서 볼 수 있듯이 쿼리는 다음과 같이 기본 스캔 즉, 기본 인덱스를 사용하고 있다는 뜻입니다. 보조 인덱스를 생성하면 문제가 해결될 수 있습니다:

동일한 쿼리를 다시 실행하면 다음과 같은 내용이 출력됩니다:

쿼리가 이미 인덱스에 도달했지만 여전히 성능이 좋지 않은 경우 보다 최적화된 인덱스를 추가할 수 있습니다(이 예제에서와 같이). 익숙하지 않은 경우 인덱스를 만드는 방법, 이 블로그 게시물을 확인하세요.

 

N1QL에서 결과를 페이지 매김하는 방법은 무엇인가요?

다음을 사용할 수 있습니다. LIMIT 그리고 오프셋:

확인 이 튜토리얼 를 클릭해 자세히 알아보세요. 또한 Spring 데이터를 사용하는 경우 다음과 같이 페이지 가능 객체를 메서드 정의의 끝에 추가하세요:

그런 다음 서비스에서 다음을 사용할 수 있습니다. 페이지 요청 객체입니다:

 

내 쿼리에 누락된 결과/잘못된 결과가 있습니다.

기본적으로 카우치베이스는 다음을 지원합니다. 읽기 후 쓰기 키로 문서를 가져올 때마다 인덱스와 보기는 데이터 변경 프로토콜(DCP)을 통해 비동기적으로 업데이트됩니다. 따라서 쓰기 직후에 쿼리를 실행하는 경우 뷰/색인이 업데이트되기 전에 쿼리가 실행될 수 있습니다.

카우치베이스는 속도를 중시하며, 모든 인덱스와 뷰가 업데이트되어 클라이언트에 쓰기가 성공적으로 실행되었다는 응답을 다시 보낼 때까지 기다릴 시간이 없습니다.

그러나 쓰기와 쿼리 간에 강력한 일관성이 실제로 필요한 시나리오는 거의 없으며, 이러한 경우에는 사용 중인 인덱스/뷰가 업데이트될 때까지 실제로 기다리도록 SDK를 통해 지정할 수 있습니다:

스캔 일관성에 대해 자세히 알아보려면 다음을 참조하세요. 공식 문서.

제 개인적인 경험상 쓰기와 쿼리 간에 일관성이 필요한 유일한 시나리오는 통합 테스트 단계, 즉 실제로 데이터를 삽입하고 그 직후에 쿼리하는 단계입니다.

 

배열 인덱스 생성/사용 방법.

이는 흥미로운 주제입니다. 배열 인덱싱 를 사용하면 성능이 크게 향상될 수 있습니다. 다음과 같은 문서 구조가 있다고 가정해 보겠습니다:

이제 호텔 리뷰를 조회해야 한다면 다음과 같은 작업을 수행할 수 있습니다:

따라서 가장 간단한 인덱스는 리뷰 배열 will 는 다음과 같이 보입니다:

그런 다음 쿼리를 실행하면 짜잔:

최근에 생성된 인덱스를 사용하고 있습니다.

더 많은 예제를 보려면 공식 문서 또는 읽기 이 훌륭한 기사 배열 인덱스를 최적화하는 방법에 대해 설명합니다.

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 데니스 로사, 개발자 옹호자, 카우치베이스

데니스 로사는 독일 뮌헨에 거주하고 있는 카우치베이스의 개발자 옹호자입니다. 그는 소프트웨어 엔지니어로서 탄탄한 경력을 쌓았으며 Java, Python, Scala, Javascript를 유창하게 구사합니다. Denis는 검색, 빅 데이터, AI, 마이크로서비스 및 개발자가 아름답고 빠르고 안정적이며 확장 가능한 앱을 만드는 데 도움이 되는 모든 것에 대해 글을 쓰는 것을 좋아합니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.