C#/NHibnernate 관점에서이 질문을하지만 일반적으로 적용됩니다. 염려되는 점은 HiLo 전략은 id가 꽤 빠르지 만, 예를 들어 낮은 레코드 수 테이블 (예 : 사용자)이 높은 레코드 수 테이블 (예 : 주석)과 동일한 ID 세트에서 공유한다는 것입니다. 따라서 잠재적으로 다른 전략을 사용하면 높은 수를 얻을 수 있습니다. 그렇다면 사람들은 무엇을 추천합니까?HiLo ID 생성 전략을 사용할 때 어떤 유형의 ID를 사용해야합니까?
코드면 : int/uint/long/ulong?
DBSide : int/bigint?
내 느낌은 갈망과 bigingts로 이동하는 것입니다,하지만 전성 검사 :
감사 필리페. 이전에 HiLo의 잠금 문제를 발견하지 못했습니다. 그것에 대해 더 깊이 알고 있습니까? – UpTheCreek
@UTC - 실제로 잠금 문제는 각 엔티티가 열을 사용하지만 모든 정보가 같은 행에 있으며 NH는 다른 세션 팩토리가 ID를 가져 오지 않도록 전체 행을 잠급니다. . 그래서 'where' 커스텀 파라미터를 사용하는 것을 추천합니다. 각 엔티티는 (동일한 테이블에) 자신의 라인을 가질 것입니다. – jfneis
내 소식은 전략에 대해 분명히 알지 못했다고 생각합니다. 나는 약간의 말을 바꾸고 이해를 보증하기 위해 다른 사람들을 굵게 만들었다. 희망이 도움이! 건배. – jfneis