노션 데이터베이스가 느려지는 이유|검색 속도를 높이는 속성 정리 방법
노션을 처음 사용할 때는 데이터베이스에 이것저것 넣어도 속도가 크게 신경 쓰이지 않습니다. 그런데 페이지가 쌓이고 Relation이나 Rollup, Formula 같은 속성이 늘어나면 어느 순간 데이터베이스를 열거나 필터를 변경할 때 예전보다 답답하다고 느껴질 수 있습니다.
저도 이런 경우라면 무조건 데이터부터 줄이기보다 데이터베이스 구조와 속성을 먼저 확인하는 방법을 권합니다.
노션에도 데이터베이스 인덱스를 만들어야 할까?
여기서 먼저 구분해야 할 부분이 있습니다.
MySQL이나 PostgreSQL을 사용해본 사람이라면 데이터가 많아졌을 때 CREATE INDEX 같은 방식부터 떠올릴 수 있습니다.
하지만 노션에서는 사용자가 SQL 데이터베이스처럼 직접 인덱스를 생성하고 관리하는 방식이 아닙니다.
따라서 ‘노션 검색이 느리니 인덱스를 추가한다’는 접근보다는 데이터베이스에 불필요하게 많은 속성이 붙어 있지는 않은지, 계산이 복잡하게 연결되어 있지는 않은지를 살펴보는 편이 현실적입니다.
먼저 확인한 것은 속성 개수였습니다
예를 들어 업무 관리용 데이터베이스를 아래처럼 사용한다고 가정해보겠습니다.
업무명 / 담당자 / 상태 / 시작일 / 마감일 / 프로젝트 / 진행률 / 남은 기간 / 관련 업무 / 완료 업무 수 / 메모
처음에는 전부 필요한 것처럼 보입니다.
하지만 실제로 확인해보면 거의 사용하지 않는 속성이 섞여 있는 경우가 있습니다. 특히 테스트하면서 만들어놓은 Formula나 Relation을 그대로 방치하기 쉽습니다.
그래서 저는 먼저 다음 기준으로 확인합니다.
① 실제 화면에서 사용하는 속성인가?
② 필터나 정렬에 사용하는가?
③ 다른 데이터베이스와 연결되어 있는가?
④ Formula 또는 Rollup 계산에 필요한가?
어디에도 해당하지 않는 속성이라면 삭제하기 전에 테스트용 데이터베이스에서 제거해보고 문제가 없는지 확인합니다.
Relation과 Rollup은 연결 구조도 확인해야 합니다
단순 텍스트 속성과 달리 Relation은 다른 데이터베이스와 연결됩니다.
예를 들어,
프로젝트 DB → 업무 DB → 담당자 DB
처럼 여러 데이터베이스가 연결되어 있고 그 결과를 다시 Rollup으로 가져오는 구조라면 데이터가 많아질수록 관리 자체가 복잡해집니다.
특히 하나의 화면에서 여러 Relation과 Rollup을 동시에 보여줄 필요가 있는지도 확인해볼 만합니다.
저라면 자주 확인하지 않는 계산 결과는 메인 뷰에서 숨기고, 필요한 정보를 중심으로 별도의 뷰를 만들어 사용합니다.
속성을 숨기는 것과 삭제하는 것은 다릅니다. 다른 수식이나 자동화에서 사용하고 있는 속성을 무작정 삭제하면 기존 워크플로우가 깨질 수 있으므로 반드시 연결 관계를 먼저 확인해야 합니다.
Formula가 길다면 한 번 점검해보세요
Formula 2.0을 사용하다 보면 하나의 속성에서 여러 조건을 처리하게 되는 경우가 있습니다.
예를 들어 마감일까지 남은 날짜를 계산하면서 상태까지 판단하고, 다시 문자열을 만들어 표시하는 식입니다.
처음에는 편하지만 나중에는 수식을 수정하기가 상당히 어려워집니다.
이럴 때는 단순히 수식을 짧게 만드는 것보다 같은 계산을 여러 곳에서 반복하고 있지는 않은지부터 확인하는 것이 좋습니다.
수식이 복잡할수록 오류가 발생했을 때 어느 부분에서 문제가 생겼는지 찾기도 어려워지기 때문입니다.
데이터베이스를 정리할 때 제가 확인하는 순서
저라면 다음 순서로 진행합니다.
사용하지 않는 속성 확인 → Relation 구조 확인 → Rollup 확인 → Formula 확인 → 불필요한 뷰 정리 → 필터와 정렬 조건 확인
한꺼번에 여러 항목을 변경하지 않는 것도 중요합니다.
예를 들어 Relation과 Formula를 동시에 수정해버리면 문제가 발생했을 때 무엇 때문에 생긴 것인지 찾기 어려워집니다.
하나씩 변경하면서 실제 사용에 문제가 없는지 확인하는 편이 안전합니다.
속성을 많이 삭제하면 무조건 빨라질까?
그렇게 단정하기는 어렵습니다.
노션의 실제 처리 방식은 사용자가 직접 제어할 수 있는 일반적인 SQL 데이터베이스와 다르기 때문에 속성 몇 개를 삭제하면 검색 속도가 몇 % 빨라진다고 말할 수는 없습니다.
그래서 이 작업의 목적을 단순한 속도 향상에만 두기보다는 불필요한 데이터 구조를 줄이고 관리하기 쉬운 데이터베이스를 만드는 것으로 보는 것이 좋습니다.
실제로 오래 사용한 데이터베이스일수록 테스트용 속성, 사용하지 않는 Relation, 중복 Formula 등이 남아 있는 경우가 있습니다.
이런 부분을 정리하면 데이터베이스 구조를 파악하기 쉬워지고 이후 자동화나 API를 연결할 때도 관리가 편해집니다.
마무리
노션 데이터베이스가 느려졌다고 해서 무조건 페이지나 데이터를 삭제할 필요는 없습니다.
먼저 현재 사용하는 속성, Relation, Rollup, Formula, 필터와 뷰를 하나씩 확인해보세요.
특히 오랫동안 사용한 데이터베이스라면 지금은 사용하지 않는 속성이 생각보다 많이 남아 있을 수 있습니다.
중요한 것은 많은 기능을 넣는 것이 아니라 실제로 필요한 데이터가 어디에 있고 어떻게 연결되는지 쉽게 파악할 수 있는 구조를 만드는 것입니다.




댓글 0
첫 댓글을 남겨보세요.