내 sqlite 데이터베이스의 기본 키로 텍스트 열을 사용해야합니다. 또한 해시 함수를 사용하여 내 텍스트 값에서 32 비트/64 비트 int를 얻을 수 있습니다 (기본 키로 사용하려는 경우). 그래서 나는 내 텍스트 값 대신에이 int 해시 값을 기본 키로 사용할 수 있습니다. 하지만 테이블에 원시 텍스트 값을 추가로 저장해야합니다.sqlite : 텍스트 열을 기본 키로 사용하거나 해시 함수로 변환해야합니까?
하지만 sqlite는 내부적으로 ROWID를 사용하고 있으므로 해시 함수를 사용하면 어쨌든 도움이되는지 알 수 없습니다.
sqlite는 해시 값 대신 해시 값이나 텍스트 값을 페이지에 저장합니까? 텍스트 값을 저장하면 페이지가 날아갈 수 있고 해시 값을 사용하면 더 좋을 것이라고 생각합니다.
하지만 여기에는 지식이 부족합니다. 도와 주시면 감사하겠습니다.
텍스트 열을 * 기본 키로 사용해야하는 이유는 무엇입니까? – Tim
@Tim, 이것이 데이터를 가져 오는 키이기 때문에. 약 30 자 길이의 문자열입니다. – Chris
다른 테이블이나 다른 테이블에서이 테이블을 참조하려고한다면 PK로 정수를 자동 증가시키고 longtextfield에 인덱스를 넣을 것입니다 :'select id, longtextvalue from T where longtextvalue =? '. – Tim