백업 작업에 대한 정보를 저장하는 데 sqlite 데이터베이스가 있습니다. 각 실행마다 특정 테이블에 약 32,000 개의 항목을 추가하면 약 25MB가 증가합니다.SQLite의 성능에 대한 주요한 영향
이 테이블은 특정 정보를 다른 테이블의 레코드에 연결하는 데 사용되는 "맵 테이블"이며 사용하지 않는 기본 키 (autoincrement int)를 가지고 있습니다.
sqlite는 값에 따라 INT 열에 대해 1, 2, 4 또는 8 바이트를 예약합니다. 이 테이블에는 INT 유형의 3 개의 추가 열만 있습니다.
필자는 쿼리에서 필터로 사용하는 열의 인덱스를 데이터베이스에 추가했습니다.
인덱스가있는 상황에서 설명 된 상황에서 기본 키는 성능 측면에서 어떤 유용한 이점을 갖고 있습니까?
참고 : 성능은이 프로젝트에서 매우 중요하지만 32,000 개의 입력 작업에 10ms를 저장하면 추가로 10MB의 데이터가 필요하지 않습니다!
나는 이것에 대부분 동의합니다. 중요한 아이디어는 데이터베이스를 메모리에 보관하는 것입니다. 인덱스가 너무 크면 문제가 될 수 있습니다. – Unknown
@Unknown : 일반적인 디스크 기반 메모리 캐싱 데이터베이스의 경우 사용되지 않는 인덱스는 메모리에 들어가서는 안되며 사용하면 사용하지 않는 인덱스는 곧 다시 제거됩니다. 그러나 예, 백업 디스크 스토리지가없는 완전한 메모리 내장 데이터베이스를 구축하는 경우 이러한 인덱스가 문제를 일으킬 수 있습니다. – Thilo