nestpay 데이터베이스 검증 리포트

schema.dbml 기준 · MariaDB 11.4 실측 검증 · 자체 생성(외부 전송 없음)

검증 개요

본 리포트는 nestpay 데이터베이스 설계(schema.dbml)를 실제 MariaDB 11.4 인스턴스에 적재하고, 기능별 표준 SQL(queries.sql)의 조회 계획을 EXPLAIN으로 검증하며, 원장 무결성 방어 장치의 실동작과 100만 건+ 규모의 성능을 실측한 결과입니다. 모든 수치는 실제 실행 결과이며 추정치가 아닙니다.

검증 방법

단계내용판정 기준
1. 스키마 적재schema.dbml → DDL → V2(MariaDB 기능) → 방어 루틴 순차 적용오류 없이 전 객체 생성
2. 조회 계획(EXPLAIN)기능별 대표 쿼리 52종을 실 데이터에서 EXPLAIN대형 테이블은 인덱스 사용(const·ref·range), 풀스캔 0
3. 무결성 방어원장 변조·삭제·규칙 위반 시도 12종DB가 실제로 거부(오류) / 허용 규약은 통과
4. 성능 실측거래 200만·원장 400만 등 1,051만 행 적재 후 핵심 쿼리 실행 시간 측정조회 쿼리 수 ms 이내

MariaDB 고유 기능 활용 유지보수 최우선 — 로직은 전부 애플리케이션(Java), DB는 선언적 방어만

기능적용목적

조회 계획(EXPLAIN) 검증 — 52종

각 기능별 대표 쿼리가 의도한 인덱스를 사용하는지 실 데이터에서 확인합니다. const/ref는 인덱스 정확 조회, range는 인덱스 범위 스캔으로 모두 정상입니다. ALL(풀스캔)은 0건입니다.

ID기능테이블조회 방식사용 인덱스판정

인덱스 인벤토리

테이블별 인덱스 구성입니다. UQ는 유일 제약(무결성·멱등 보장), 나머지는 조회 성능용 보조 인덱스입니다. 모든 인덱스는 queries.sql의 실제 조회 경로에서 사용됩니다.

기능별 SQL 카탈로그

개발이 사용할 표준 SQL 전량입니다. 이 카탈로그가 구현 기준이며, 모든 데이터 접근은 여기 정의된 SQL을 따릅니다. 각 SQL의 사용 인덱스는 주석으로 표기되어 있어 구현 시 이탈하면 코드 리뷰에서 확인됩니다. [TX]는 단일 트랜잭션 필수 블록입니다.

원장 무결성 방어 검증 — 12종

"누락 절대 금지 · 전 증거 보존" 원칙이 실제로 DB 레벨에서 강제되는지 확인합니다. 변조·삭제 시도는 실제로 거부되어야 하고(차단), 규약상 허용 동작은 통과해야 합니다.

ID시도기대실제 결과판정

100만 건+ 성능 실측

핵심 쿼리 실행 시간 (중앙값)

테이블 규모 (실측 적재분)

테이블행 수크기