SQL++/N1QL 쿼리

4.5.1의 N1QL 개선 사항 - 파트2

RDBMS에서 전환 간소화

Couchbase Server 4.5.1 릴리즈는 엔터프라이즈 애플리케이션의 요구 사항을 해결하기 위해 N1QL에서 다양한 기능, 사용성 및 성능 개선을 제공합니다. 이러한 개선 사항은 고객이 중요하게 여기는 여러 문제를 해결하고 RDBMS에서 전환.

Couchbase Server 4.5.1을 사용해 보세요. 파트너 및 고객의 현장 테스트를 거쳐 프로덕션에 사용할 준비가 되었습니다. 새로운 기능 및 개선 사항의 전체 목록은 새로운 기능을 참조하세요.

놓치지 마세요 part1 블로그의

새로운 쿼리 설정 예쁜

예쁘다!! 예쁘다!! 예쁜!! 예, 예쁜 는 쿼리 결과의 예쁜 서식을 사용하거나 사용하지 않도록 설정할 수 있는 N1QL의 매우 인상적인 새로운 쿼리 설정입니다. 이게 뭐가 그리 대단하냐고 물어보실 수도 있습니다. 그리고 왜 누구나 JSON 출력의 아름다운 서식을 비활성화하고 싶어할까요?

옛 속담처럼 공짜 점심은 없습니다. 쿼리 결과를 예쁘게 서식 지정하려면 자체 비용이 발생합니다:

  1. 먼저, 간단한 사실 하나는 형식이 잘 갖춰진 JSON 문서에서 공백(탭, 공백, 줄 바꿈) 문자가 문서 크기의 거의 3분의 1을 차지한다는 것입니다.
    • 따라서 단순히 미화를 줄이면 네트워크를 통해 흐르는 모든 원시 바이트를 절약할 수 있습니다.
    • 또한 N1QL 서비스의 메모리 및 처리 리소스를 절약할 수 있다는 점도 고려하세요.
    • 전체적으로 비용 절감 효과는 상당히 큽니다.
  2. 예쁜 출력 형식은 사람이 읽을 수 있는 시나리오에 적합합니다. 사람이 관리할 수 있는 결과 크기.
    • 그러나 실제 애플리케이션과 컴퓨터 프로그램은 사람보다 훨씬 더 자주 쿼리를 실행하고 훨씬 더 큰 쿼리 결과를 처리합니다.
    • 이 경우 중요한 것은 성능 그리고 효율성를 사용해야 합니다. 사실 이러한 서식은 JSON 구문 분석기와 애플리케이션에 오버헤드가 되기 때문에 일반적으로 버려집니다. 일반적으로 애플리케이션에는 각 사용자에게 적합한 데이터 형식을 지정하는 자체 프레젠테이션 계층이 있습니다.
    • 예를 들어 항공편을 검색하는 여행 예약 웹사이트를 생각해 보세요. 어떤 여행 사이트도 이용 가능한 항공편을 여러 개의 JSON 문서로 덤프하지는 않을 것입니다.

새로운 쿼리 매개변수 예쁜 를 사용하여 쿼리 결과 서식 지정을 활성화/비활성화할 수 있습니다. 매개변수는 다음과 같습니다:

  • 로 설정 true 또는 false.
  • 명령줄 매개변수로 CBQ 엔진에 전달됩니다.
  • REST 호출과 함께 쿼리 매개변수로 전달됩니다.

기본적으로 다음과 같이 설정되어 있습니다. true. 로 설정하면 false를 사용하면 쿼리 결과에서 공백 문자가 제거됩니다. 쿼리가 큰 결과를 생성할 때 성능 이점을 크게 볼 수 있으며, 물론 문서의 공백 오버헤드 비율에 따라 달라집니다. 예를 들어 여행 샘플에서 모든 문서를 선택하는 다음 쿼리를 실행하면 거의 3배 빠른 속도 언제 pretty = false. 또한 결과 집합의 크기는 예쁜 형식의 결과의 1/3입니다.

함께 pretty = true

함께 pretty = false

결과 크기는 이제 36754457바이트에 불과하며 쿼리는 2.2초 만에 실행됩니다.

N1QL 쿼리의 동적 개체 구성에 대한 개선 사항

N1QL은 이미 쿼리에서 동적으로 JSON 객체를 생성하는 기능을 지원합니다. 이는 쿼리 투영 목록에서 특별히 구성된 결과 개체를 생성하는 데 큰 도움이 됩니다. Couchbase Server 4.5.1은 표현식의 기능을 확장하고 N1QL 쿼리에서 동적 객체 생성 및 객체 처리를 강화합니다.

  1. Couchbase Server 4.5.1에서 N1QL은 개체 필드의 이름과 값을 모두 임의의 표현식으로 사용할 수 있도록 허용합니다. 이전 버전에서는 필드 이름이 정적 문자열이어야 했습니다. 이름이 문자열로 평가되지 않으면 개체 구성의 결과는 NULL입니다. 예를 들어
  2. 4.5.1에서는 N1QL 쿼리에서 개체를 구성할 때 이름-값 쌍의 필드 이름은 선택 사항으로 지정할 수 있습니다. 예를 들어, 다음 쿼리는 각 값에 "type" 및 "name"이라는 이름을 암시적으로 할당합니다:

새로운 배열 함수 ARRAY_INTERSECT()

ARRAY_INTERSECT() 함수는 두 개 이상의 배열을 매개변수로 받아 입력 배열의 교집합, 즉 모든 입력 배열에 존재하는 값을 포함하는 배열을 결과로 반환합니다. 공통 배열 요소가 없는 경우 빈 배열을 반환합니다. 자세한 내용은 문서를 참조하세요. 예를 들어 다음 쿼리는 다음과 함께 제공된 여행 샘플 버킷에서 Brian 또는 Lilian이 좋아하는 호텔을 찾습니다. 카우치베이스 서버 4.5.1.

다운로드 카우치베이스 서버 4.5.1 를 클릭하고 사용해 보세요. 질문/의견이 있거나 얼마나 멋진지 알려주세요 ;-)
건배!!

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

작성자

게시자 카우치베이스 팀

의 선임 웹 관리자입니다. 웹 사이트 관리자로서 디자인, 구현, 콘텐츠 및 성능을 포함한 웹 사이트 자산에 대한 전반적인 책임을 맡고 있습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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