>  Q&A  >  본문

샤딩 - 데이터베이스 샤딩 및 테이블 절단 후 Java 백엔드 코드 구현 및 모범 사례

현재 비즈니스에서는 일부 테이블이 점점 커지면서 읽을 때의 부담이 매우 높기 때문에(쓰기에 대한 수요는 상대적으로 적음) 데이터베이스 측면에서 특히 많은 양의 데이터가 포함된 일부 테이블을 잘라내기로 결정했습니다. 하지만 백엔드 코드에는 많은 것이 있습니다. 코드/쿼리는 이러한 테이블을 조인해야 합니다. 이 상황을 어떻게 해결합니까?

예를 들어, 이제 약 1억 개의 데이터가 포함된 SampleTable이 있습니다. 이를 로직에 따라 약 16개의 테이블로 나누었습니다: SampleTable 1, SampleTable2...SampleTable31,
이전 코드에도 비슷한 쿼리가 있었습니다. 받는 사람:

으아악

이제 이 쿼리를 여러 번 실행하고 데이터를 반환 결과로 집계해야 합니까?

으아악

더 나은 방법이나 권장 라이브러리가 있습니까?

향후에 여러 테이블을 서로 다른 데이터베이스 서버로 분할하려면 백엔드 코드에 서로 다른 DB의 데이터베이스 연결을 추가해야 하나요?

데이터베이스 샤딩의 기본 아이디어와 샤딩 전략

이 기사는 데이터베이스 샤딩 전략에 대해 자세히 설명합니다. 누구든지 실제 프로젝트 코드 샘플을 제공할 수 있나요?
데이터베이스 샤딩 및 JPA
-sql-joins 대신 수행할 작업 -크기 조정 중-수평

Stackoverflow에 대한 답변

过去多啦不再A梦过去多啦不再A梦2675일 전921

모든 응답(5)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-06-23 09:14:49

    데이터베이스 미들웨어 도입을 고려해 볼 수 있습니다
    sharding-jdbc 클라이언트 레벨
    mycat-server 서버 레벨

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-06-23 09:14:49

    친구가 SQL 스타일 쿼리를 지원하고 1억 개의 데이터에 대해 약 0.5초 만에 결과를 반환하는 Spark를 추천했습니다

    회신하다
    0
  • ringa_lee

    ringa_lee2017-06-23 09:14:49

    우리 프로젝트의 현재 상황에 한해: 테이블을 분할할 때 해시 알고리즘에 따라 특정 테이블에 해당하고, 가져올 때 알고리즘에 따라 데이터의 분포 위치를 먼저 얻은 다음 일반 선택을 수행합니다. 끝났어

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-06-23 09:14:49

    조인 테이블 쿼리는 권장하지 않습니다
    1. 데이터베이스 리소스는 상대적으로 소중하며, 조인 테이블 쿼리는 많은 메모리를 차지하므로 데이터베이스 성능이 저하됩니다.
    2. 여러 데이터베이스 인스턴스에서는 데이터가 지원되지 않습니다. 상황을 처리할 수 없고 확장성이 좋지 않습니다

    일반적인 접근 방식은 조인 테이블 쿼리를 여러 개의 단일 테이블 쿼리로 나눈 다음 결과를 애플리케이션에 요약하는 것입니다.
    1. 위의 테이블 쿼리 문제를 해결할 수 있습니다.
    2. 여러 쿼리의 경우 각 쿼리의 중간 결과도 프로그램에서 처리할 수 있어 유연성이 뛰어납니다.
    3. 애플리케이션은 언제든지 확장될 수 있어 더욱 유연해집니다

    오프라인 시나리오인 경우 hadoop 등의 MR(mapreduce) 프레임워크를 사용하여 처리하는 것이 좋습니다. 따라서 데이터를 HDFS에 작성해야 합니다.

    회신하다
    0
  • 欧阳克

    欧阳克2017-06-23 09:14:49

    http://blog.csdn.net/tianyale...
    하위 데이터베이스 및 하위 테이블에 대한 자세한 설명

    회신하다
    0
  • 취소회신하다