2016-07-22 3 views
0

나는 사용자와 관련된 알림을 저장해야하는 데이터베이스 스키마를 구축 중입니다. 내가 각 사용자에 대해 별도의 테이블을 작성해야합니까 아니면 하나의 큰 테이블을 MySQL 데이터베이스에 있어야합니다. 시간과 메모리 측면에서 어느 쪽이 더 효율적입니까?하나의 큰 테이블 또는 mysql 데이터베이스 구현의 많은 작은 테이블

은 단일 테이블의 경우, 알림 테이블 에 대한 스키마는

Notification(NotificationID,UserId,Content,seen,..) 

과 다중 테이블에 대한 스키마는 사용자가 가입 한 번 각 사용자에 대해 생성됩니다

Notification__userId(NotificationID,Content,seen..) 

입니다.

+0

하나의 테이블을 선호합니다. – Jens

+0

하나의 테이블을 사용하십시오. 페이스 북만큼 많은 사용자가있을 때, 당신은 다르게 생각하기 시작할 것입니다 – SIDU

답변

2

단일 테이블을 사용하고 올바른 인덱스를 설정하십시오.

여러 테이블을 사용하면 데이터 처리가 더 복잡해지고 응용 프로그램에서 더 많은 개별 오류 지점 (테이블 생성, 사용할 테이블 결정, 이상한 쿼리 작성 등)이 발생합니다.

단일 테이블을 사용하는 것이 두려울 수도 있지만 쿼리 실행 시간이 느려지지만 인덱스를 올바르게 설정하면 데이터베이스의 확장 기능을 과소 평가할 수 있습니다.

당신은 확장성에 대한 몇 가지 정보를이 사이트를 확인하고 인덱스에 대해 배울 수도 있습니다 : http://use-the-index-luke.com/sql/testing-scalability/data-volume

1

U는 모든 사용자 통지를 저장하고 심지어 의지하는 데 도움이 될 것입니다 사용자 ID를 사용하여 저장 통지에 하나 개의 테이블을 사용한다 데이터를 쉽게 가져올 수 있습니다.

관련 문제