2010-02-13 1 views
31

평균적인 PHP 웹 개발자와 마찬가지로 나는 RDBMS로 MySQL을 사용합니다. MySql (다른 RDBMS와 마찬가지로)은 SPATIAL INDEX 기능을 제공하지만 잘 이해하지 못합니다. 나는 그것에 대해 봤지만 거기에 대한 나의 나쁜 지식을 명확히하기위한 명확한 실제 사례를 찾지 못했습니다.왜 SPATIAL INDEX 란 무엇이며 언제 사용해야합니까?

누군가가 나에게 SPATIAL INDEX가 무엇인지 설명 할 수 있습니까? 언제 사용해야합니까?

+5

데미안,이 귀하의 질문에 대답 했습니까? 도움이 더 필요하면 내 대답에 의견을 추가하십시오. 또는 그것이 당신을 위해 그것을 해결했다면, 제 대답을 "대답"으로 확인하기 위해 친절하게하십시오. TIA, 롤랜드. –

+1

공식 MySQL 설명서는 설명과 예제를 제공합니다 : [공간 인덱스 만들기] (http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html) - [공간 인덱스 사용하기] (http://dev.mysql.com/doc/refman/5.5/en/using-a-spatial-index.html) – Jocelyn

답변

17

지형 객체 - 도형을 인덱싱하기 위해 공간 인덱스를 사용할 수 있습니다. 공간 인덱스는 공간에서 겹치는 오브젝트를 효율적으로 검색 할 수있게 해줍니다.

+4

매우 구체적인 [고성능 공간 데이터베이스 생성] (http://sqlbits.com/Sessions/) Event5/creating_high_performance_spatial_databases)는 공간 인덱스가 다른 인덱스와 다른 점을 이해하는 데 도움이되는 훌륭한 비디오입니다. –

+0

공간 인덱스가 2 차원이므로 호기심이 많습니다. 정규 Inteher 데이터의 범위 쿼리와 같은 다른 사용 사례에서이를 활용할 수 있습니까? –

+0

@MangatRaiModi 일반 정수 데이터 인 경우 일반 btree 인덱스를 사용하는 것이 좋습니다. 이들은 범위 쿼리를 지원합니다. –

6

공간 인덱스는 공간적 오브젝트가 1D 데이터 포인트가 아닌 1 차원 데이터 포인트가 아닌 일반적인 차원의 인덱스와 같습니다. BTree와 같은 인덱스는 이러한 데이터를 인덱싱하는 데 적합하지 않습니다. 잘 알려진 공간 색인 기법은 R-tree (Google 위키피디아)

-2

공간 색인의 사용은 범위 검색이 아닌 정확한 일치 값 조회를 검색하는 데 가장 적합합니다. 이는 주로 MyISAM 테이블에서 지원되지만 MySQL 5.7.4 LAB 릴리즈에서 Innodb도 지원합니다.

참고 : - http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html http://mysqlserverteam.com/innodb-spatial-indexes-in-5-7-4-lab-release/

+1

먼저 공간 인덱스라고합니다. 두 번째로, 범위 스캔을하지 않는 것에 대한 귀하의 의견은 btree의 비 공간 인덱스에 적용되므로 공간 인덱스에 대한 설명이 아닙니다. "공간 컬럼의 비 공간적 인덱싱을 지원하는 스토리지 엔진의 경우 엔진은 B- 트리 인덱스 공간 값에 대한 B- 트리 색인은 정확한 값 조회에는 유용하지만 범위 스캔에는 유용하지 않습니다. " – jbu