2016-12-22 13 views
1

나는 꽤 클 수있는 WKT를 저장하고 싶지만 객체 값에 저장하는 동안 32K 제한을 실행하고 있습니다.32K 문자열 제한에 대한 대안이 있습니까?

create table A (id integer, wkt object); 
+0

개체에 데이터를 어떻게 저장하고 있습니까? 이것은 wkt [ 'str']와 같은 속성입니까? 그렇지 않으면 문자열이나 geo_shape (요구 사항에 따라 다름)로 저장하는 것이 좋습니다 – claus

+0

@claus 우리는 wkt가 나타내는 것을 미리 알지 못하기 때문에 키 값을 사용하고 있습니다. 유형마다 여러 개가있을 수 있습니다 관련 모양 당 wkt 기하학의. 예를 들어, 다각형은 다양한 버퍼, 알파 셰이프, 단순화 공차 등에 대해 wkt를 가질 수 있습니다.이 개체를 테이블로 전개 할 수는 있지만 모든 데이터를 단일 행으로 유지하기 때문에 좋았습니다. geo_shape에 대한 나의 이해는 wkt를 직접 가져올 수 없으며 공간 쿼리를 수행하는 데 wkt가 필요하다는 것입니다. (다른 질문 http://stackoverflow.com/questions/41286539 참조) – nicerobot

+0

예. geo_shape ...를 사용할 때 WKT가 돌아오고 이제는 예상되는 각 열에 대해 INDEX OFF (또는 INDEX USING PLAIN, ...)를 미리 정의 할 수 있으므로 삽입하기 전에 키를 알고 있는지에 따라 다릅니다. WKT 문자열 :) – claus

답변

0

은 그래서 객체에 긴 문자열을 저장하는 방법이있다 : 적절히 다른 SQL 부품에 사용되는 것을 금지하는 전체 개체가 인덱싱되지 않습니다 ignored를 사용하여

CREATE TABLE IF NOT EXISTS A (
    "id" INTEGER, 
    "wkt" OBJECT (IGNORED) 
) 

, (그들은 전체 테이블 스캔을 항상 수행합니다).

그러나 아래 첨자는 정상적으로 작동합니다.

다른 독자의 경우 : WKT도 geo_shape 유형으로 저장하거나 match directly과 함께 사용할 수 있습니다.