6억 건의 팔로우 관계 데이터를 다루는 것은 정말 흥미로운 대용량 데이터 설계 문제입니다. 현재 코드에서 사용하고 있는 방식과 다른 대안들을 체계적으로 비교해보겠습니다.

현재 방식: 관계형 테이블 (Relational Table)

코드에서 보시는 NEOUserRelationEntity처럼 중간 테이블을 사용하는 방식입니다:


sql
-- star_fan_map 테이블
CREATE TABLE star_fan_map (
    id BIGINT PRIMARY KEY,
    follower_id BIGINT,-- 팔로우하는 사람
    star_id BIGINT-- 팔로우 받는 스타
);

장점:

단점:

대안 1: JSON/Array 필드 방식

각 사용자별로 팔로우 목록을 JSON이나 배열로 저장하는 방법입니다:


sql
-- 사용자 테이블에 팔로우 목록 추가
ALTER TABLE users ADD COLUMN following_list JSON;
ALTER TABLE users ADD COLUMN follower_list JSON;

장점: