2011-12-16 4 views
2

SQL에서 최적화 된 경계 상자 스타일 쿼리와 관련된 모든 문서에 연결할 수 있습니까?SQL 경계 상자 최적화

가장 기본적인 수준에서 x, y 플로트 열로 구성된 표를 생각해 볼 때 특정 (x1, x2), (y1, y2) 범위 내의 행에 대해 표를 쿼리합니다. 이 작업을 수행하는 쿼리는 간단하지만이 쿼리가 효율적으로 작동하도록 인덱스를 정의하는 가장 좋은 방법은 무엇입니까?

x 및 y 열에 인덱스를 만들거나 x 및 y 열 둘 다에 인덱스를 만들 수는 있지만이 방법을 통해 SQL 인덱싱에 대해 충분히 알지 못합니다.

저는 MySQL을 사용하고 있습니다.

답변

1

공간 채우기 곡선은 2 차원 공간을 1 차원 문제로 축소하는 것이 가장 좋습니다. 이것은 프랙탈처럼 구성되어 있으며 기본적으로 표면의 회색 코드를 통과합니다. 색인을 계산하는 대신 허프 먼 코드와 비슷한 quadtree 경로 프리픽스 프리 키를 조합 할 수 있습니다. 그런 다음 간단한 문자열 쿼리를 사용하여 상자를 검색 할 수 있습니다. MySql에는 공간 인덱스 확장이 있지만 어떤 커브를 사용하는지 알지 못합니다. 그것은 아마도 단순한 z- 커브 또는 peano 커브 일 것입니다. Nick spatial index quadtree hilbert 커브 블로그를 살펴볼 수 있습니다. Monotonic n-ary 회색 코드는 또한 매우 흥미로울 수 있습니다.