programing

유사한 데이터를 올바른 방법으로 표를 만드는 방법

copysource 2023. 1. 14. 10:28
반응형

유사한 데이터를 올바른 방법으로 표를 만드는 방법

온라인 상태인지 아닌지에 관계없이 몇 개의 서버와 서비스를 ping할 수 있는 프로그램을 만들어 데이터베이스에 쓰려고 합니다.그래서 만들 때 어떤 것이 가장 좋은지 궁금해서 이 세 가지 아이템이 필요할 것 같지만, 그렇지 않을 때가 있습니다.

현재 스키마는 다음과 같습니다.

CREATE TABLE webservice_historylog (
    id_webServiceConnection BIGINT PRIMARY KEY AUTO_INCREMENT,
    id_Location varchar,
    datetime_Connect datetime,
    response_TimeMs int,
    status_Code varchar(5),
    status_Message varchar(255)
);

CREATE TABLE internet_historylog (
        id_internetConnection BIGINT PRIMARY KEY AUTO_INCREMENT,
        id_Location varchar,
        datetime_Connect datetime,
        response_TimeMs int,
        status_Code varchar(5),
        status_Message varchar(255)
);

CREATE TABLE postgresql_historylog (
        id_postgresqlConnection BIGINT PRIMARY KEY AUTO_INCREMENT,
        id_Location varchar,
        datetime_Connect datetime,
        response_TimeMs int,
        status_Code varchar(5),
        status_Message varchar(255)
);

이걸로 뷰 테이블을 만들 수 있을 것 같은데..

아니면 한 테이블 밑에 둘까요?이렇게...

CREATE TABLE connection_historylog (
            id_Connection BIGINT PRIMARY KEY AUTO_INCREMENT,
            id_Location varchar,
            connectionType varchar, # Internet, WebService, Databases
            datetime_Connect datetime,
            response_TimeMs int,
            status_Code varchar(5),
            status_Message varchar(255)
);

내가 원했던 것:

1분 간격으로 활발하게 쓰기 때문에 장기적인 목표를 위해 성능이 향상되었습니다.이것은 나중에 이 데이터를 호출하는 방법도 영향을 미칩니다.자세한 내용은 이쪽에서 확인하실 수 있습니다.

일반적으로 같은 표를 한 테이블에 넣어야 합니다.이 방법에는 시간이 지남에 따라 다음과 같은 여러 가지 이점이 있습니다.

  • 서로 다른 유형의 데이터를 확인하는 쿼리는 훨씬 단순하고 최적화하기 쉽습니다.
  • 기존 테이블에 삽입하는 것만으로 새로운 유형을 추가할 수 있습니다.
  • 유지 보수와 조작이 간단해집니다.예를 들어 인덱스를 추가하는 작업은 여러 테이블이 아닌 하나의 테이블에서만 수행되어야 합니다.
  • 삽입 전용 환경에서는 테이블에는 데이터 페이지가 가득 차기 때문에 성능이 향상됩니다.

이러한 환경을 최적으로 동작시키려면 인덱스와 파티셔닝이 필요합니다.특정 인덱스는 데이터의 사용 방법에 따라 달라집니다.

1인용 테이블입니다만, 주로 그렇게 하는 것이 올바른 방법이기 때문입니다.

기타 주의사항:

  • 어느 쪽이든 쓰기 성능은 동일합니다.
  • 하나.INSERT1분 당은 사소한 것입니다.1초라도 사소합니다.1000/초는 위태로워질 수 있습니다.
  • 읽기 성능은 어떤 필터링/정렬을 수행하느냐에 따라 달라집니다.일단 우리가 보면SELECTs, 의논할 수 있습니다.INDEXes.
  • 1행/분은 1년에 100만 행보다 작기 때문에 확장에 대해서는 논할 필요가 없다고 생각합니다.
  • (아직) 아무것도 나타내는 것은 없다PARTITIONing아무 소용이 없을 거야

언급URL : https://stackoverflow.com/questions/54035093/how-to-create-a-table-with-similiar-data-the-right-way

반응형