Tibero Spatial에서는 공간 질의 성능 향상을 위해 RTREE 방식으로 구현된 공간 인덱스를 제공한다.
공간 인덱스 생성 방법과 제약에 대해서 설명한다.
사용법
CREATE INDEX index_name on [schema_name.] table_name ON col_name RTREE
이름 | 설명 |
---|---|
<index_name> | 생성할 공간인덱스의 이름이다. |
schema_name | 인덱스를 생성할 대상 테이블의 소유자이다. |
table_name | 인덱스를 생성할 대상 테이블을 설정한다. |
col_name | 인덱스를 생성할 대상을 설정한다. 컬럼은 GEOMETRY TYPE이어야 한다. |
RTREE | RTREE 인덱스로 생성함을 의미하는 예약어를 설정한다. |
예제
SQL>CREATE TABLE GIS (ID INTEGER PRIMARY KEY, GEOM GEOMETRY); Table 'GIS' created. SQL>CREATE INDEX RT_IDX_GIS ON GIS(GEOM) RTREE; Index 'RT_IDX_GIS' created. INSERT INTO GIS VALUES (101, ST_GEOMFROMTEXT('POINT(1 1)')); INSERT INTO GIS VALUES (102, ST_GEOMFROMTEXT('MULTIPOINT(1 1, 2 2)')); INSERT INTO GIS VALUES (103, ST_GEOMFROMTEXT('LINESTRING(1 1, 2 2)')); INSERT INTO GIS VALUES (104, ST_GEOMFROMTEXT('MULTILINESTRING((1 1, 2 2), (3 3, 4 5))')); INSERT INTO GIS VALUES (105, ST_GEOMFROMTEXT('POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))')); INSERT INTO GIS VALUES (106, ST_GEOMFROMTEXT('POLYGON((0 0, 0 12, 12 12, 12 0, 0 0), (6 10, 6 11, 9 11, 9 10, 6 10), (6 3, 6 6, 9 6, 9 3, 6 3))')); INSERT INTO GIS VALUES (107, ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1, 2 1, 2 2, 1 2, 1 1)), ((3 3, 3 5, 5 5, 5 3, 3 3)))')); INSERT INTO GIS VALUES (108, ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3))')); INSERT INTO GIS VALUES (109, ST_BOUNDARY(ST_GEOMFROMTEXT('POINT(10 10)'))); INSERT INTO GIS VALUES (110, ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3))')); COMMIT;