VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
이 가이드는 VillageSQL 0.0.4 이상이 필요합니다.
vsql_cube 확장은 두 종류의 쿼리를 모두 자연스럽게 만드는 cube 사용자 정의 유형을 추가합니다.
문제
각 상품에 가격, 평균 평점, 리뷰 수가 있는 상품 카탈로그가 있다고 합시다. 구매자는 가격 $50–$200, 평점 3.5 이상, 리뷰 50개 이상인 상품을 원합니다. 이는 세 가지 조건의 AND입니다:VillageSQL과 함께: cube 유형
cube 유형은 n차원 공간의 점이나 상자를 저장합니다. 점은 위치이고, 상자는 두 모서리 좌표로 정의되는 영역입니다. 둘 다 일반 열에 들어갑니다.
cube는 MySQL 예약어이므로 DDL에서 백틱으로 감싸세요. 차원 매개변수(3)는 필수입니다 — 숫자 없는 cube만으로는 지원되지 않습니다.
데이터 삽입
좌표 문자열을 직접 삽입하고 열 자체의 변환이 이를 파싱하게 하세요.cube_point_nd()로 감싸지 마세요: 그 함수는 매개변수화되지 않은 cube를 반환하며, 이는 차원이 매개변수화된 cube(3) 열로 암시적으로 변환될 수 없습니다(ERROR 3219).
(price, rating, review_count)입니다 — 상품당 점 하나입니다.
cube_contains를 사용한 범위 쿼리
검색 영역을 상자로 정의하세요.cube_box_nd()는 아래쪽 모서리의 좌표 다음에 위쪽 모서리의 좌표를 받으므로, 3차원 상자는 숫자 6개를 받습니다.
cube_contains(@region, attrs)는 상품의 점이 상자 안에 들어갈 때 1을 반환합니다 — 세 AND 조건을 한꺼번에 적용한 것과 같지만, 거리 쿼리와 조합할 수도 있습니다.
cube_distance를 사용한 최근접 이웃
주어진 상품과 가장 유사한 상품을 찾으려면 속성 공간에서 유클리드 거리를 측정하세요:겹침 확인
cube_overlaps()는 두 상자가 공간을 조금이라도 공유하면 1을 반환합니다 — 상품이 여러 프로모션 구간 중 하나에라도 해당하는지 확인할 때 유용합니다:
문제 해결
함께 보기
- MySQL에서 벡터 임베딩 생성하기 — 다차원 유사도에 대한 또 다른 접근으로서 AI가 생성한 벡터
- MySQL에서 전문 검색을 구현하는 방법 — 텍스트 데이터를 위한 대안으로서 키워드 기반 검색
- 데이터에 맞는 열 유형을 고르는 방법 — cube와 표준 열 유형 중 무엇을 선택할지