일반 사용자 테이블 "user"(user_id / user_email / user_pwd / etc) 옆에 프로필 정보를 저장하는 가장 좋은 방법은 무엇입니까?
"user"와 같은 사용자 테이블에 필드를 추가할까요?
(user_id/user_email/user_pwd/user_firstname/user_lastname/user_views/etc)
또는 "프로필"이라는 다른 테이블을 만듭니다.
(profile_id/user_id/user_firstname/user_lastname/user_views/etc)
아니면 속성 정의가있는 테이블과 해당 값을 저장하는 다른 테이블로 이동합니까?
필드를 쉽게 추가하고 제거 할 수 있으므로 마지막 것이 가장 유연하다는 것을 알고 있습니다. 그러나 큰 사이트 (사용자 5 만 명 이상)의 경우이 속도가 빠를까요?
해결 방법
접근 방식에서 고려해야 할 사항
사용자 표에 사용자 프로필 저장
User_Profile에 사용자 프로필 저장 표 1-1 사용자와의 관계
사용자 프로필을 표의 속성 및 값으로 저장
* 예 : 가능한 옵션을 저장할 테이블, user_id, option_id 및 값을 저장할 테이블 *
내 인상은 대부분의 웹 사이트가 두 번째 방법을 사용하고 두 번째 테이블에 프로필 정보를 저장한다는 것입니다. 대부분의 큰 웹 사이트에서 일반적으로 데이터베이스 (twitter, facebook)를 비정규 화하여 쓰기 성능을 저하시키면서 읽기 성능을 향상시킵니다.
프로필 정보를 두 번째 테이블에 보관하는 것이 50,000 개의 레코드를 볼 때 갈 방법이라고 생각합니다. 최적의 성능을 위해서는 캐시가 효과적으로 작동 할 수 있도록 많이 쓰여진 데이터를 읽기가 많은 데이터와 분리하여 보관하려고합니다.
참조 페이지 https://stackoverflow.com/questions/3889797
'MySql' 카테고리의 다른 글
MySQL의 멀티 스레딩? (0) | 2020.11.04 |
---|---|
MySQL 데이터베이스에서 PHP 드롭 다운 목록 채우기 (0) | 2020.11.04 |
MySQL SQL Injection을 사용하여 테이블을 업데이트하려면 어떻게해야합니까? (0) | 2020.11.04 |
MySQL Bin 로그에서 쿼리 검색 (0) | 2020.11.04 |
MySQL 테이블이 저장할 수있는 최대 레코드 수량은 얼마입니까? (0) | 2020.11.04 |
댓글