[MONGODB] 가치 MongoDB의 속성 이름을 단축되어 있습니까?
MONGODB가치 MongoDB의 속성 이름을 단축되어 있습니까?
블로그 MongoDB를 롤링에서 표현하고 Node.js를 저자는 짧아 속성 이름에 대한 좋은 생각 언급한다 :
나는 그것을 수행하는 방법의 솔루션 알고있다. 나는 이것이 진정으로 필요한 경우에 더 관심이 무엇입니까?
해결법
-
==============================
1.도널드 크 누스를 인용 :
도널드 크 누스를 인용 :
응용 프로그램을 빌드하는 것은 그러나 가장 합리적인 유지 보수 및 논리적 보인다. 성능 또는 저장 문제가있을 경우, 하나의 성능이 만족 또는 수확 체감 수단의 법이 더 최적화 아무 소용이 없다 때까지 가장 큰 영향을 미치는 것들 처리합니다.
당신이 (긴 속성 이름과 같은) 특정 설계 결정의 영향을 모르는 경우 ( "것이다 짧은 속성 이름 공간의 저장"과 같은) 다양한 가설을 테스트하기 위해 프로토 타입을 만들 수 있습니다. 결정적으로 테스트의 결과를 기대하지 마십시오, 그것은 당신에게 일을 가르 칠 수 있지만 당신은 배울 기대하지 않았다.
-
==============================
2.자신의 상황과 테스트가 그 우선 순위를 변경하는 구체적인 이유를 제공하지 않는 한 짧은 이름에 대한 우선 순위 위의 의미있는 이름의 우선 순위를 유지합니다.
자신의 상황과 테스트가 그 우선 순위를 변경하는 구체적인 이유를 제공하지 않는 한 짧은 이름에 대한 우선 순위 위의 의미있는 이름의 우선 순위를 유지합니다.
SERVER-863의 코멘트에서 언급 한 바와 같이, 당신이 물어 압축과 WiredTiger 저장 옵션을 사용하여 MongoDB를 3.0 이상을 사용하는 경우하면 압축이 효과적으로 당신을위한 단축을 담당 한 필드 이름도 적은 문제가 될, 수 있었다.
-
==============================
3.결론은 최대 : 여전히 의미 유지 그래서 컴팩트로 유지.
결론은 최대 : 여전히 의미 유지 그래서 컴팩트로 유지.
나는이 진정으로 한 글자 이름을 단축하는 데 필요한 모든 것을 생각하지 않습니다. 어쨌든 당신은 가능한 한을 단축해야합니다, 당신은 그것으로 편안한 느낌. {FIRSTNAME, 가운데 이름, 성} 당신도 이름을 갈 수있을 수 있습니다 : 당신은 사용자 이름을 말할 수 있습니다 {처음, 중간, 마지막}. {F, M, L} : 당신이 편안 경우에 당신은 이름을 잘 할 수있다. 당신은 짧은 이름을 사용한다 : 그것은 따라서 수 다소 둔화 응용 프로그램의 디스크 공간, 메모리를 소비하고있는 바와 같이 (메모리에 보류 적은 개체를 데이터를 통해 추구로 인해 더 큰 크기와 더 이상 질의 시간에 느린 검색 시간이 오래 걸립니다). 좋은 스키마 문서는 t는 제목 마을의 약자하지 않는 것이 개발자에게 있습니다. 당신의 스택에 따라 당신도 매핑하는 헬퍼 utils를 통해 이러한 지름길 작업에서 개발자를 숨길 수 있습니다.
마지막으로 나는 당신이 당신의 스키마 이름을 단축해야 할 때 얼마나 아무런 지침이 없다는 것을 말할 것입니다. 그것은 고도의 환경 및 요구 사항에 따라 달라집니다. 하지만 넌 좋은 당신이 개발자와 관리자의 삶을 쉽게하기 위해 모든 및 / 또는 제공 유틸을 설명하는 좋은 문서를 제공 할 수있는 경우는 압축 유지합니다. 어쨌든 관리자는 내가 좋은 문서는 놓치지 말아야 할 것 같아요, 그래서 MongoDB를 직접 상호 작용할 가능성이 높다.
-
==============================
4.이 내 2 센트를 추가 ..
이 내 2 센트를 추가 ..
데이터 모델을 설계하면서 긴 이름 특성 (또는, "AbnormallyLongNameAttributes")는 피할 수 있습니다. 내 이전 조직에서 우리는 예를 들어 4-5 편지 인코딩 된 문자열, 조직이 정의로, 짧은라는 이름의 속성 전략을 유지하여 테스트 :
우리가 주로 인해 네트워크를 통해 전송되는 데이터의 크기가 감소, 쿼리 성능 개선을 관찰하는 동안, 또는 MongoDB의 문서 / 자바지도 힙 공간에서의 "키"의 길이의 감소 (우리는 MongoDB의 자바를 사용하기 때문에) 성능의 전반적인 개선은 15 % 미만이었다.
내 개인적인 의견으로는,이 / 유지 데이터 모델의 각에 대한 데이터 속성 사전을 관리하는 별도의 시스템을 설계의 추가 비용 (그리고 거대한 두통)에서 온 마이크로 optimzation했다. 이 시스템은 / 응용 프로그램을 디버깅 클라이언트 쿼리에 응답하는 동안 조직 전체의 투명성이 요구되었다.
당신이이 전략과 성능 20 % 증가 개까지 당신에게 수익성있는 위치에 자신을 발견 당신의 MongoDB의 서버를 확장 할 수있는 시간이 될 수있는 경우 / 다른 데이터 모델링 / 쿼리 전략을 선택, 그렇지 않으면 다른 선택하기 모두 데이터베이스.
-
==============================
5.사용자 정의 이름을 가진 이들은 매우 중요 할 수있는 개선 노력, XML 자세한 사용하는 경우. 서버-863 티켓 사용자의 코멘트는 자신의 경우 단계; 내가 명명 자세한 정보와 함께, 외부에서 정의 된 XML 객체를 저장하는 '해요 다음 fieldName에는, 아마도, 총 레코드 크기의 70 %. 그래서 필드 이름 토큰은 거대한 승리는 I / O 및 메모리 효율성의 관점에서 둘 수 있습니다. '
사용자 정의 이름을 가진 이들은 매우 중요 할 수있는 개선 노력, XML 자세한 사용하는 경우. 서버-863 티켓 사용자의 코멘트는 자신의 경우 단계; 내가 명명 자세한 정보와 함께, 외부에서 정의 된 XML 객체를 저장하는 '해요 다음 fieldName에는, 아마도, 총 레코드 크기의 70 %. 그래서 필드 이름 토큰은 거대한 승리는 I / O 및 메모리 효율성의 관점에서 둘 수 있습니다. '
from https://stackoverflow.com/questions/12790861/is-shortening-mongodb-property-names-worthwhile by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 몽구스의 DB 문서에 _id 설정하는 방법? (0) | 2019.12.06 |
---|---|
[MONGODB] upsert 배열 데이터를 몽고 수 있습니까? (0) | 2019.12.06 |
[MONGODB] MongoDB의 통합 프레임 워크를 사용하여 소수점 이하 2 자리까지 반올림 (0) | 2019.12.05 |
[MONGODB] 어떻게 MongoDB의 문서에서 이중으로 중첩 된 배열에서 요소를 제거합니다. (0) | 2019.12.05 |
[MONGODB] MongoDB를 배열에있는 모든 요소의 필드 삭제 [중복] (0) | 2019.12.05 |