DBMS/Cassandra

Cassandra DB에서 COUNT 쿼리가 위험한 이유..

seungh0 2023. 5. 24. 20:11
반응형

내부적으로 N개씩 (Paging 설정으로 변경 가능하며, default 100) 커서 조회로 파티션을 풀 스캔함..)

  • 파티션 키로 필터링 조건으로 조회한다면, 파티션 기준으로 풀 스캔하고, 파티션 필터링 조건조차 없다면, 모든 파티션을 풀 스캔한다…
  • 동작방식에서 알 수 있다시피, 파티션 크기가 점점 커질수록, 카산드라에 많은 부하를 유발하니 사용하지 말자..

만약 테이블 기준 전체 카운트를 알아야 한다면, nodetool tablestat (Number of keys, estimate)에 나오는 로우 추정 갯수를 통해 확인할 수 있다.

 

nodetool tablestats

Provides statistics about one or more tables. Provides statistics about one or more tables. Synopsis nodetool [ options ] tablestats [ -H | --human-readable ] [ -i table [, table ] . . . ] [ - - ] [ keyspace | table | keyspace.table ] [keyspace | table | k

docs.datastax.com

 

특정 조건을 기준으로 레코드를 알아야 한다면, 별도의 카운트 테이블을 둬서 카운팅을 관리해야할 것으로 보임.

반응형