기본 키 열의 길이 제한은 얼마입니까? varchar를 기본 키로 사용하겠습니다. PostgreSQL은 기본 키로 사용할 때 varchar 제한을 지정하지 않아도되므로 정보가 없습니다. 얼마나 오래있을 수 있습니까?PostgreSQL 기본 키 길이 제한
답변
필자는 최대 varchar 길이가 Postgres 구성 설정이라고 생각합니다. 그러나 크기가 1GB를 초과 할 수없는 것처럼 보입니다. 말한 갖는
는, 그것은 기본 키 큰 VARCHAR 열이 아마 좋은 생각이 아니다. 직렬 또는 bigserial 사용을 고려하십시오 (http://www.postgresql.org/docs/current/interactive/datatype-numeric.html#DATATYPE-SERIAL)
+1 varchar 나쁜 PK입니다 지적했다. 이렇게하면 참조 테이블에서 사용할 때 성능이 저하됩니다 (가장 최근의 PG 버전으로 링크를 변경했습니다). – DrColossos
@DrColossos :이 명령은 varchar 필드를 다른 테이블의 외래 키로 사용하는 경우에만 해당됩니다. 해당 필드가 단순히 UNIQUE이고 NOT NULL *이어야하며 해당 테이블에서 참조되는 경우에만 숫자 "PRIMARY KEY"를 추가하면 실제로 해를 입을 것입니다. 이제 데이터 무결성을 보장하기 위해 NOT NULL varchar 열에 숫자 PK * 및 * 추가 UNIQUE INDEX의 오버 헤드가 발생합니다. 외래 키에 대해 이야기 할 때 좋은 조언이지만, "varchar는 나쁜 PK입니다"라고 말하는 것은 오해의 소지가 있습니다. –
@Matthew 후속 조치에 대한 감사 : D 세부 사항 및 내 의견을 해석하는 방법을 완전히 알지 못했습니다. 나는 "[...]"참조 표 내에서 사용할 때 "외래 키"라는 의미가 분명했지만이 주제에 대해 더 많은 통찰력을 제공했습니다. 이제 더 잘 알아, 고마워! – DrColossos
기본 키를 포함하는 B- 트리 색인의 값의 최대 길이는 버퍼 페이지의 크기의 1/3입니다 (기본적으로 8192/3) = 바이트.
테스트를 거쳐야합니다.
PostgreSQL 8.4에서 단일 varchar 열을 기본 키로 사용하여 table을 사용하여 테스트했습니다. 결과적으로 235000 ASCII 문자를 저장할 수 있었고, 116000 개의 직각 문자 (f.g. 'ć') 또는 75000 중국어 (f.g. '汉')를 저장할 수있었습니다. 큰 세트의 경우 메시지가 있습니다.
BŁĄD : 인덱스 행 크기가 5404가 최대 btree를 초과하는 2712
버퍼 페이지의 1/3보다 큰 값은 인덱싱 할 수 없습니다.
값이 허용되었지만 고유성 검사에 전체 문자열이 사용되지는 않았습니다.
글쎄,이 열에 넣을 수있는 매우 많은 양의 데이터입니다. 그러나 위에서 언급 한 것처럼 키와 같은 긴 값을 사용해야하는 경우 디자인이 좋지 않습니다. 인공 기본 키를 사용해야합니다.
- 1. PostgreSQL bytea 기본 키
- 2. Hibernate/JPA와 PostgreSQL - 기본 키?
- 3. PostgreSQL : 대형 데이터베이스에서 기본 키 정의
- 4. 엔티티 필드 길이 제한
- 5. 텍스트 필드 길이 제한
- 6. OData URL 길이 제한
- 7. XSLT의 문자열 길이 제한
- 8. 텍스트 길이 제한
- 9. AJAX 길이 제한
- 10. Bash PATH 길이 제한
- 11. mysql 길이 제한
- 12. 속성에서 문자열 길이 제한
- 13. Postgresql HAVING 절 제한
- 14. 읽기에 대한 기본 키 제한 위반
- 15. 기본 소프트 키 메모리 제한 초과
- 16. InnoDB 최대 키 길이
- 17. SMS 120 자 길이 제한
- 18. vba의 쿼리 문자열 길이 제한?
- 19. 파이썬 : 제어 시간 제한 길이
- 20. XML/HTML 문자열 길이 제한
- 21. 브라우저 제한 최대 페이지 길이
- 22. 국제 도메인 이름 카운트 길이 SQL (PostgreSQL)
- 23. "rundll32 url.dll, FileProtocolHandler"의 URL 길이 제한?
- 24. 대리 키 길이 지정 사용
- 25. NSTableView 열의 셀에서 텍스트 길이 제한
- 26. UNIX wc -l (줄 길이 제한 포함)
- 27. XML 스키마를 사용하여 문자열 길이 제한
- 28. 속성 파일 문자열 길이 제한 (JAVA)
- 29. 증가하는 방법을 아파치 2 URI는 길이 제한
- 30. Android : videocamera, 촬영 한 동영상 길이 제한
필자는 이러한 기본 키에 많은 데이터를 넣을 수 있지만 좋은 생각이 아닙니다. 모든 해답을 가져 주셔서 감사합니다. – FolksLord