MongoDB 성능 개선을 위한 점검 (DB 프로파일링 / db.setProfilingLevel)
-
반응형
⚠️ 성능에 영향을 주는 쿼리를 확인하기 위한 용도일뿐, 이 자체로 성능을 개선하는 것과는 무관합니다.
(오히려 프로파일링 활성화 모드일때 성능을 더 잡아먹음. 프로파일링 완료 후 반드시 프로파일링 비활성화를 해야 함)
프로파일링 활성화
mongo db 접속 및 해당 database 접근 후 사용.
2개 중에 편한 방법을 이용하여 활성화할 수 있다.
1. mongosh(mongoshell) 을 통한 사용 시
# mongosh 접속
mongosh
# admin db 접근
use admin
# db 권한 접속
db.auth('사용자명','비밀번호')
# 프로파일링할 db 사용: platform db 예시
use platform
# 프로파일링 활성화: 예시: 레벨 1, slowms 느린쿼리 임계치를 의미. 즉 100ms 를 초과하는 쿼리에 대해 프로파일링 한다는 뜻
db.setProfilingLevel(1, { slowms: 100 });
2. studio3T를 통한 사용
사용할 데이터베이스로 접근해서 아무 컬렉션이나 조회 실행
⚠️ 반드시 admin 데이터베이스가 아닌 사용하는 데이터베이스(safety)로 접근 후에 실행하여야 함
intelliShell에서 기존의 조회 쿼리문을 삭제하고 아래의 쿼리문을 실행
db.setProfilingLevel(1, { slowms: 100 });
반응형
프로파일링 비활성화 및 데이터 삭제
프로파일링 비활성화
해당 데이터베이스(safety)에서 해당 쿼리문 실행
# 프로파일링 레벨을 0으로 하면 비활성화가 됨
db.setProfilingLevel(0);
프로파일링 데이터 삭제
프로파일링 비활성화 상태에서만 데이터 삭제가 가능합니다.
# 프로파일링 비활성화를 먼저 수행 후에 실행할 것!
db.system.profile.drop();