나는 최근에 git를 많이 사용 해왔고 sha1을 기반으로하는 해시 함수를 사용하여 GIT가 비슷한 데이터를 복제하지 않도록하는 방법이 매우 마음에 듭니다. 나는 현재의 데이터베이스가 비슷한 일을하는지 궁금 해서요, 아니면 어떤 이유에서 비효율적입니까?데이터베이스의 공간을 절약하기 위해 해시 알고리즘을 사용할 수 있습니까?
2
A
답변
1
나는 (아마 널리하지만 사용되는)
내가 행의 모든 필드의 해시 코드를 계산 한 다음 나는이 해시를 사용하는 좋은 "재사용 기반-에 해시"기술을 함께했다 -code를 기본 키로 사용하십시오.내가 삽입했을 때 나는 단순히 "INSERT IGNORE"(중복 된 기본 키에 대한 오류를 억제하기 위해)를했다. 어쨌든 내가 삽입하기를 원하는 것이 삽입 후 데이터베이스에 있는지 확인할 수있었습니다.
이것이 알려진 개념이라면 그것에 대해 듣게되어 기쁩니다!
2
필요가 없습니다. 데이터베이스에는 이미 데이터베이스 복제를 피하는 좋은 방법이 있습니다.
예를 들어 5 개의 다른 문자열 중 하나를 포함 할 수있는 열이 있다고 가정 해보십시오. 이러한 문자열 중 하나를 각 행에 저장하는 대신 이러한 문자열을 별도의 테이블로 옮겨야합니다. 하나는 문자열 값을 다른 하나는 기본 키로 두 개의 열이있는 테이블을 만듭니다. 이제 전체 문자열을 저장하는 대신 원본 테이블에서 외래 키를 사용할 수 있습니다.
관련 문제
- 1. 공간을 절약하기 위해 git-svn을 사용하여 불필요한 서브 디렉토리 작업하기
- 2. 공간을 절약하기 위해 9 패치가 동일한 픽셀을 제거합니까?
- 3. 웹 페이지의 내용을 식별하기 위해 어떤 알고리즘을 사용할 수 있습니까?
- 4. 대역폭을 절약하기 위해 서버 응답을 무시할 수 있습니까?
- 5. 는 SVG에서 음수 공간을 사용할 수 있습니까?
- 6. 이 문자열에서 사용 된 해시 알고리즘을 찾을 수 있습니까?
- 7. 데이터베이스의 쇼 이미지에 Zend_Form_Element_Image를 사용할 수 있습니까?
- 8. XML 변경 내용을 추적하기 위해 일반 텍스트 비교 알고리즘을 사용할 수 있습니까?
- 9. 더 나은 알고리즘을 만들기 위해 알고리즘을 공부해야합니다
- 10. 대역폭을 절약하기 위해 파일을 분리해야하는 경우
- 11. 최소 비용 흐름 그래프를 찾기 위해 ocamlgraph의 Goldberg 알고리즘을 사용할 수 있습니까?
- 12. 이러한 해시 알고리즘을 사용하는 PHP 함수는 무엇입니까?
- 13. PCL XL에서 CMYK 색상 공간을 사용할 수 있습니까?
- 14. MySQL을 위해 무엇을 사용할 수 있습니까?
- 15. 성능을 높이기 위해 조인을 사용할 수 있습니까?
- 16. iPhone 개발을 위해 jQuery를 사용할 수 있습니까?
- 17. Dependency Injection을하기 위해 DefaultBinder를 사용할 수 있습니까?
- 18. SPNego로 보안 서비스를 테스트하기 위해 SoapUI를 사용할 수 있습니까?
- 19. 심비안을 위해 Qt 또는 CQA에서 openssl을 어떻게 사용할 수 있습니까?
- 20. 사용할 알고리즘을 알아 내려고 시도합니다.
- 21. 어떻게 아이폰 디스크 공간을 찾을 수 있습니까?
- 22. MD5 알고리즘을 사용할 때의 오류
- 23. 문제와 알고리즘 알고리즘을 통해 해결할 수 있습니까?
- 24. django를 기존 데이터베이스의 프런트 엔드로 사용할 수 있습니까?
- 25. 데이터베이스의 자동 증가 기본 키를 사용할 수 있습니까?
- 26. Mongo는이 데이터를 저장하기 위해 엄청난 양의 공간을 차지하고 있습니까?
- 27. 어떻게 체크섬 알고리즘을 추측 할 수 있습니까?
- 28. 데이터베이스에 MJD + BCD 형식으로 시간을 절약하기 위해 권장되는 형식
- 29. Iterator를 사용하여 재귀 알고리즘을 구현할 수 있습니까?
- 30. LINQ를 사용하여이 알고리즘을 향상시킬 수 있습니까?
어떤 해시를 사용하셨습니까? 두 개의 다른 필드가 우연히 같은 해시를 가졌을 때 당신은 무엇을 했습니까? –
인터넷에서 이것에 대해 어떤 것이 있습니까? 나는 더 많은 것을 듣고 싶다. – Zubair
@Mark Byers 물론 이것은 일반적인 경우의 문제입니다. 그러나 가능한 조합의 값 조합이 매우 제한적입니다. (해시 함수의 범위에 따라 번호가 매겨집니다.) @Zubair 사실 실제로는 그렇지 않습니다. . 나는 기술에 대해 뭔가를 찾고 싶습니다. – aioobe