이것은 맞춤 소셜 네트워크 용입니다. |많은 ENUM의 경우 어떤 접근 방식이 훨씬 더 낫습니까?
- 프로필 설정
- SMS : 모든 사용자는 "프로필 설정"사용자가 변경할 수 있습니다
약 30 설정, 그래서 몇 가지 범주가있어 있다 이메일 알림
- 권한 설정
- 보안 설정
- 액세스 설정
은 내가 작은 테이블에 설정 제할 경우 다음과 같이 설정을 (열거 형)
을 유지하는 여러 테이블을 만든 (물론 고유 한 사용자 ID가 인덱스됩니다)
(사용자 ID는 탭의 모든 부분에서 기본 키입니다)
CREATE TABLE user_profile_settings (...) type=MyISAM;
CREATE TABLE user_profile_notif (...) type=MyISAM;
CREATE TABLE user_profile_auth (...) type=MyISAM;
CREATE TABLE user_profile_security (...) type=MyISAM;
CREATE TABLE user_profile_access (...) type=MyISAM;
하나의 요청은 한 번에 여러 테이블로 내려 오며, 이는 또한 약간의 permay를 의미합니다. 이점은 다음과 같습니다. user_profile_settings에서만 읽을 수 있으면 해당 테이블에서 index'ed id를 요청합니다.
이CREATE TABLE all_user_config (/***/) type=MyISAM;
그것은 약 30 colums 포함되어 있지만 전체 시스템을 유지하기 위해 약간 어렵게이 같은 사용자가 가지고있는 모든 사용자 설정에 대해 하나 개의 행을 만들 :
두 번째 방법이다.
질문은 다음과 같습니다. 어떤 방법이 권장되며 10 억 개의 행에 적합합니까?
하나의 테이블을 유지하는 것이 유지 관리하기가 쉽기 때문에 동의합니다. 그러나 전반적인 테이블에 대한 키를 4 바이트로 저장하는 상황에 도달 할 수 있지만 개별 값에 대해 1 바이트가 없어 질 수 있습니다. 행 길이가 가장 중요한 관심사라면 다른 접근 방식을 시도하는 것이 좋습니다. –