필자는 260 개의 열이있는 레거시 테이블을 가지고 있습니다 : 4 개는 전역 값을 저장하고 256 개 열은 매개 변수를 저장합니다. 512 개의 값을 저장하기 위해 테이블을 확장해야합니다.레거시 데이터베이스에 500 개의 키 - 값 쌍을 저장해야합니까?
최적의 솔루션은 3 개의 열 (id, value, parent_id)만으로 하위 테이블을 만들고 필요한만큼의 매개 변수를 저장하는 것입니다. 그러나 이것은 코드의 상당한 재 작성을 필요로하고 나는 성능에 대해 확신하지 못한다.
두 번째로 많은 값을 저장하려면 테이블을 확장하면됩니다 (넓게 만듭니다). 코드에 대한 최소한의 변경을 구현해야하므로이 방법이 더 안전한 솔루션입니다. 또한 새로운 테이블은 앞으로 4 년 동안 수정되지 않을 것입니다 (따라서).
조금 더 많은 정보를 제공하기 위해 시스템에 단위 테스트가 없으므로 코드를 수정하지 않으므로 ORM을 사용하지 않습니다. 따라서 코드 작성 및 읽기시 많은 변경 작업이 필요합니다. DB)와 PM은 첫 번째 해결책이 기존 해결책보다 느릴 수도 있다고 우려하고있다. 테이블에 10000 개의 행을 저장할 수 있으므로 제안 된 자식 테이블은 약 5 백만 행이됩니다.
제안 된 디자인이 실제로 현재 디자인보다 빠르다는 것을 증명할 수 있습니까? 설계 고려만으로는 충분하지 않습니다 (현재 시스템이 작동합니다 ...). 제안 된 디자인으로 옮길 다른 좋은 (또는 나쁜) 이유가 있습니까?
하위 테이블 아이디어를 수행하십시오. 500 값은 성능에 많은 영향을 미치지 않습니다. 시작시 HashMap에서 캐시를 많이 변경하지 않으면 캐싱을 고려하십시오. – Bohemian