문제

이제 나는 bigint가 2^64라는 것을 알고 있습니다. 즉, 알려진 우주에있는 것보다 더 많은 원자입니다. 내 단순한 인간의 두뇌는 단순히 그 숫자의 거대 함을 얻을 수 없기 때문에 걱정해서는 안됩니다.

그러나 모든 범주, 제품 및 순서, 출시부터 끝까지 모든 범주, 제품 및 주문에 대한 모든 변경 사항을 기록한다고 가정 해 봅시다. 기본 키 값이 떨어지는 것에 대해 걱정하기 전에 테이블 쓰기의 성능에 대해 걱정해야합니까? 다른 우선 순위의 이벤트를 다른 이벤트 테이블에 기록해야합니까? Bigints가 부족하기 전에 하드 드라이브에서 원자가 떨어질까요? 아카이브 / 지우기 전에 이벤트 로그 테이블을 얼마나 커야합니까?

도움이 되었습니까?

해결책

모든 항목에 1 바이트 만 있더라도 하드 드라이브에서 2^64 개의 항목이 약 18000000TB를 차지할 것이므로 걱정하지 않아도됩니다.

다른 팁

응용 프로그램이 1 초마다 1 초마다 테이블에 레코드를 추가 한 경우 키가 부족하기 전에 50 만 년 이상 실행됩니다.

"아카이브 / 지우기 전에 이벤트 로그 테이블이 얼마나 커야합니까?"

이벤트 로그를 지우지 마십시오. 정보는 상당한 가치가 있습니다.

그러나 일부 관리자는 아카이브가 필요하다고 주장하면 스토리지 비용과 시간 비용을 보여줄 수 있습니다. 로그 레코드를 보관하는 절차.

저장 비용은 급락합니다. 당신의 시간은 로그 레코드를 제거하는 것 외에는 더 잘 보냅니다.

결론 : 당신은 손을 짜는 것을 멈출 수있는 권한이 있습니다. 전부다 괜찮아. 당신은 근본적인 실수를하지 않습니다.

기본 키 값이 부족할 가능성은 거의 없습니다. 그러나 데이터를 검색하기 위해 로그 테이블에 액세스하는 방법을 고려해야 할 수도 있습니다. 이를 사용하여 데이터를 보관하거나 청소 해야하는시기를 알리십시오. 로그 데이터를 읽는 경우 자주 읽기 성능을 향상시키기 위해 추가 인덱스에 대해 생각하지만 추가 된 모든 레코드에 대해 인덱스를 유지해야한다는 점을 명심하십시오.

이를 처리하는 방식은 로그 아카이빙 기능을 제공하는 것입니다. 로그 테이블을 연도별로 별도의 데이터베이스로 분리하여 Logevent 테이블의 Identity Seed를 재설정 할 수 있습니다.

우리는 또한 다른 로그 테이블이 있지만 두 가지 주요 테이블 만 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top