웹 프로그래머를 위한 데이터베이스를 지탱하는 기술

1

DB를 CRUD이외에 그 어떠한 것에도 관심이 없으시다면 이 책은 정말 훌륭한 안내서가 될 것이라 생각한다. 돗단배가 그려져있고 운영체제 교재의 저자랑 이름이 비슷한 사람이 쓴 데이터베이스 개론(?)서나 엔코아시스템에서 출판한 책을 맥북 받침대로 쓰시는 저와 같은 분들에게도 참 좋은 책입니다. 일단 뭔 말인지는 이해가 됩니다.

2

심지어 NoSQL에 대한 내용도 나오고, 운영에 필요한 각 종 정보도 나온다. 하지만 그런것 보다 이 책은 DB의 전반적인 내용을 광범위하게 다루고 있다는 점에서 CRUD 이외에 관심이 없었던 개발자라면 가볍게 읽어보기 좋은 듯 싶다.

나도 읽었으니 누구라도 읽을 수 있다는 믿음을 가지며…


인덱스도 별도의 ‘테이블’과 같은 형태로 생각해야겠다.

[…] 인덱스 자체는 본체의 데이터와 별도로 관리하기 때문에 본체의 데이터를 업데이트할 때 인덱스를 별도로 업데이트해야 한다. 따라서 데이터 업데이트 비용은 증가하지만, 대신 검색을 극적으로 고속화할 수 있다.

해시 인덱스가 만능은 아니지만 굉장히 좋은 인덱스 기법이다.

해시 인덱스는 만능이 아니다. [..] 1) 해시 인덱스는 지정한 키 값과 같은 것밖에 찾을 수 없기 때문에 이러한 목적으로는 사용할 수 없다. […] 2) 범위 검색 3) 순서에 따른 결과를 반환해야 할 경우

역시, 트리는 언제나 중요하다.

B+Tree 인덱스를 사용하면 등호 검색은 물론 부등호나 전방 일치 검색 등의 범위 검색도 리프 블록을 스캔하는 것만으로 완결하 수 있다. […] 이러한 높은 유연성이 B+Tree가 널리 이용되어 온 커다란 이유다.

  1. (병렬 갱신 성능 높이기)[…] 또한 현재 MySQL(InnoDB)에서 이것을 해결하는 가장 빠른 방법은 파티션 테이블을 사용하는 것이다.

  2. […] 매핑 테이블의 특징적인 사항으로는 다음과 같은 것을 들 수 있다. 1) 키 값이 자주 바뀐다 2) 레코드 수가 많아진다 3)

  3. (EXPLAIN) 주목해야 할 부분이 많아 좀 힘들긴 하지만, 그 중에서도 특히 주목하고 싶은 것이 “Rows”이다.

  4. […] 이러한 어중간한 상태로 데이터 처리가 확정되게 되면 이에 대한 복구에는 엄청난 수고가 들어간다.

  5. 데이터 파일과 REDO 로그 파일의 두 종류의 파일을 갖는다는 방식은 트랜잭션을 지원하는 데이터베이스의 표준적인 아키텍처다.

  6. […] 슬레이브는 마스터에서 보낸 업데이트성 쿼리 중에서 어디까지를 실행했는지라는 정보도 관리핯 필요가 있다.

  7. 1초에 처리할 수 있는 I/O 횟수를 IOPS라고 한다.

  8. […] 사실 MySQL의 복제는 단일 스레드로 작동한다. […] 한편, 복제는 단일 스레드이기 때문에 갱신 처리는 직렬화된다.

  9. 개발 시보다 운용 시의 문제가 심각해질 때가 많다.

  10. 문제를 얼마나 빨리 해결할지를 생각하는 데 중요한 것은 문제가 발생한 것을 얼마나 빨리 인식하는가다.

Written on May 30, 2015