레일스 쿼리 분석기 삼총사
거의 대부분의 웹 애플리케이션은 데이터베이스에 액세스한다. 레일스 애플리케이션 역시 마찬가지다. 레일스는 많은 작업들을 알아서척척 처리해 주긴 하지만, 그렇다고 레일스가 데이터베이스의 쿼리 최적화까지 자동으로 수행해 주지는 못한다. 쿼리 최적화는데이터베이스마다 다르고 애플리케이션마다 다르며 또한 동일한 애플리케이션이라 하더라도 상황마다 다르기 때문이다. 데이터베이스성능을 생각하면 당연히 해줘야 할 일이 색인(index)을 잡는 일이지만, 레일스 개발의 편리함에 빠지다 보면 정작 중요한 것을까먹기도 한다. 색인이 없는 데이터베이스는 데이터베이스가 아니다. 물론 무턱대고 아무 곳에나 색인을 달라는 말은 아니지만,레일스에는 이런 색인 작업을 포함하여 애플리케이션의 데이터베이스 쿼리 분석을 도와주는 훌륭한 도구들이 많이 있다.

Query Analyzer (mysql only)

그 중 가장 역사가 깊고 그래서 많이들 사용하는 건 아마도 Query Analyzer플러그인 일 것이다. 이 플러그인은 mysql의 EXPLAIN이 생산해내는 아웃풋을 레일스 로그 파일에 넣어 보여주기 때문에 일일이 EXPLAIN을 실행하는 수고를 덜어 준다. 이 플러그인에 대한 자세한 소개는 여기에서 얻을 수 있다.

TextMate Footnotes

두 번째로 소개할 플러그인은 TextMate Footnotes인데, 이 플러그인을 설치하면, 개발환경에서 다음과 같이 화면 하단에 세션이나 쿠키 정보 정보, 라우팅 정보 등과 같은 유용한정보들을 보여주며 이 가운데 물론 데이터베이스 쿼리에 대한 정보도 포함되어 있다. 특히 textmate와 연계하여 작업할 수있기 때문에 훨씬 더 편리하다.

query-reviewer (mysql only)

마지막으로 소개할 녀석은 query-reviewer라는 놈으로, 비교적 최근에 등장한 쿼리 분석기이다. 이 플러그인을 설치하면 개발환경에서 레일스 애플리케이션의 화면 좌상단에 해당 페이지에서 사용된 SQL의 분석 결과가 간단하게 [SQL OK], [SQL CRITICAL], [SQL WARNING] 과 같은 메시지로 제시되며, 클릭하면 상세한 쿼리 분석 보고서와 함께 간단한 처방전까지 내려주기 때문에 아주 편리하다. 게다가 Ajax호출로 발생한 쿼리에 대하여도 보고를 해주니... 기특하기도 하다.
나는 이 3가지 쿼리 분석기 '쿼리 분석기 삼총사'라고 부르며 레일스 애플리케이션을 개발할 때마다 설치해 두고 요긴하게 사용하곤 한다. 로그파일, 화면 하단, 그리고 화면 좌상단... 삼총사가 있어 든든하다.
by thinkr | 2008/09/26 12:13 | 트랙백(1) | 덧글(2)
Tracked from codian's me2.. at 2008/09/26 22:04

제목 : 꽃띠앙의 생각
레일즈 쿼리분석기 삼총사. DB 성능 신경 안쓰고 막 써도 되는 날이 올까?...more

Commented by greatdg at 2008/09/26 13:18
좋은 정보네요. 아직 쿼리분석기까지 켜놓고 개발할 스킬은 안될지언정, 무조건 설치부터 해보는;; 잘사용하겠습니다.
Commented by FlyingMate at 2008/09/26 23:28
우와! 저는 Query Analyzer만 사용하는데요, query-reviewer도 고려해봐야겠습니다! 멋진 툴 소개 감사드려요~
(역시 레일스 진영은 mysql이랑만 친한 것 같아요ㅎㅎ)
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.
< 이전페이지 다음페이지 >