

위 두 테이블은 같은 ‘좋아요’ 테이블이다.
다른 점은 feedback 테이블은 복합키로 구성되어 있고, rec_book_like 테이블은 그렇지 않다는 것. 이 둘은 각기 다른 pk와 fk, 그리고 인덱스를 지닌다.
[feedback 테이블]

- PK는 book_id와 child_id 모두를 합한 형태.(1,2) 형태로 키를 지닌다. → mysql에서는 primary 키가 설정된 순서대로 컬럼을 정렬하기 때문에, book_id를 기준으로 먼저 정렬한 다음, child_id 순으로 정렬된다.
- FK는 book_id와 child_id를 지닌다.
- index는 (book_id, child_id)와 (child_id)를 지닌다.
- book_id에는 index가 걸려 있지 않음을 알 수 있다. → 이는(첫 번째 정렬 순서인) book_id가 PK가 되며, 별도의 인덱스를 만들지 않아도 자동으로 인덱스가 적용된다는 것을 의미한다.
[rec_book_like 테이블]

- PK는 rec_book_id를 지닌다.
- FK는 book_id와 chil_id를 지닌다.
- index는 rec_book_id, child_id, book_id 세 개에 모두 걸려 있다. → 따라서 이들은 단일 조회하는 성능은 우수할 것으로 판단된다. → 하지만 (child_id, book_id)를 결합하여 조회를 할 때는 상대적으로 인덱스가 최적화되어 있지 않아서 성능이 떨어진다.
실험 조건