2023-java-study / book-study

북 스터디 기록 레포지토리
0 stars 0 forks source link

[9.2 기본 데이터 처리] 풀 테이블 스캔 시 다음 페이지를 미리 읽어올 수 있는 이유 #197

Open gmelon opened 10 months ago

gmelon commented 10 months ago

저번에 스터디때도 언급됐던 내용인데 계속 등장하는 것 같아서 확실하게 정리하는게 좋아보입니다.

디스크에 레코드가 순서대로 저장되는 것이 아니면 풀 테이블 스캔 시 다음 페이지를 미리 읽어올 수 있는 이유가 뭘까요? InnoDB 특성 상 디스크에 레코드가 순서대로 저장된다면, 다른 스토리지 엔진을 사용한 경우엔 풀 테이블 스캔 시 버퍼가 작동할 수 있는 걸까요?

NuhGnod commented 10 months ago

p286에 상단부분에서 백드라운드 스레드가 미리 여러개의 페이지를 버퍼 풀에 저장해둔다는 내용으로 디스크에 레코드가 순서대로 저장되는 것이 아니면 풀 테이블 스캔 시 다음 페이지를 미리 읽어올 수 있는 이유가 뭘까요? 에 대한 답으로 생각했습니다. 그리고InnoDB 특성 상 디스크에 레코드가 순서대로 저장된다면, 다른 스토리지 엔진을 사용한 경우엔 풀 테이블 스캔 시 버퍼가 작동할 수 있는 걸까요? 다른 엔진 ( MyISAM )의 경우 p 285 에서 풀테이블 스캔을 실행 할 때 디스크로부터 페이지를 하나씩 읽어 온다고 하였으니, 버퍼를 사용하지 못한다고 생각합니다.

gmelon commented 10 months ago

p286에 상단부분에서 백드라운드 스레드가 미리 여러개의 페이지를 버퍼 풀에 저장해둔다는 내용으로 디스크에 레코드가 순서대로 저장되는 것이 아니면 풀 테이블 스캔 시 다음 페이지를 미리 읽어올 수 있는 이유가 뭘까요? 에 대한 답으로 생각했습니다. 그리고InnoDB 특성 상 디스크에 레코드가 순서대로 저장된다면, 다른 스토리지 엔진을 사용한 경우엔 풀 테이블 스캔 시 버퍼가 작동할 수 있는 걸까요? 다른 엔진 ( MyISAM )의 경우 p 285 에서 풀테이블 스캔을 실행 할 때 디스크로부터 페이지를 하나씩 읽어 온다고 하였으니, 버퍼를 사용하지 못한다고 생각합니다.

아 MyISAM의 경우 그렇지 않다는 내용이 책에 있었군요! 잘 이해됐습니다

NuhGnod commented 10 months ago

https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?menu_dist=2&seq=22230#:~:text=MyISAM%20%EC%A0%80%EC%9E%A5%EB%B0%A9%EC%8B%9D%EC%9D%80%20%EB%A0%88%EC%BD%94%EB%93%9C,%EC%9D%98%20%EC%86%90%EC%8B%A4%EC%9D%B4%20%EB%B0%9C%EC%83%9D%ED%95%9C%EB%8B%A4.

NuhGnod commented 10 months ago

사용자 또는 시스템이 데이터베이스를 생성하는 경우, 설정된 저장경로에 데이터 베이스명의 디렉토리를 생성하며 테이블을 생성하면 테이블명의 MYD 파일과 MYI, FRM 파일을 동시 생성하여 데이터를 저장 및 관리한다.