버클리 DB의 data 갯수를 알아내는 방법은?

kkjin32의 이미지

DB의 data 갯수를 알아오기 위하여
db_cursor->c_get(db_cursor, &key, &data, DB_NEXT))
를 사용하고 있습니다.

그런데 800만건 이상의 DB에서 c_get을 사용하니 시간이 너무 오래 걸리더군요.

c_get 외에 DB의 data 갯수를 알아낼수 있는 방법이 없을까요?

답변부탁드립니다.
고맙습니다.

monpetit의 이미지

int DB->stat(DB *db, DB_TXN *txnid, void *sp, u_int32_t flags);

을 이용해 보세요. flags에 DB_FAST_STAT을 사용하면 더욱 빠른 정보를 얻을 수 있습니다.