SQLite 쿼리를 수행 할 때 반환되는 데이터 집합의 크기가 쿼리 소요 시간에 영향을 줍니까? 이 질문에 대해 실제로 결과에있는 데이터에 액세스하지 않는다고 가정합니다. 쿼리 자체가 오래 걸리는지 알고 싶습니다. 또한 단순히 모든 행을 선택하고 WHERE 또는 ORDER BY 절이 없다고 가정합니다.큰 결과 집합을 반환하는 SQLite 쿼리에 시간이 더 걸립니까?
예를 들어 두 테이블 A와 B가있는 경우 테이블 A에 백만 개의 행이 있고 테이블 B에는 10 개의 행이 있고 두 테이블의 열 수와 유형이 같다고합시다. 테이블 A의 모든 행을 선택하는 것이 테이블 B의 모든 행을 선택하는 것보다 오래 걸립니까?
내 질문에 대한 답변은 How does a cursor refer to deleted rows?입니다. 쿼리 SQLite 동안 데이터의 복사본을 다음 큰 데이터 집합을 반환하는 쿼리를 경우에만 쿼리 결과 데이터를 복사하는 최적화 않는 한 더 오래 걸릴 수 있습니다 추측하고 있습니다. DB에있는 데이터 변경 검색어가 아직 살아 있습니까?
나는 나의 질문을 명확히했다, 나는 단일 테이블에서 모든 행을 선택하는 상황에만 관심이있다. WHERE, ORDER BY, LIMIT 또는 JOIN 절이 없다. – satur9nine
확인. 나는 대답이 똑같을 것이라고 말한다. 표 A에서 더 많은 행을 실행하는 데 더 오래 걸립니다. 색인은 그 단계를 사라지게 할 수도 있습니다. 모두 선택하면 IO (허용되는 오버 헤드)만큼 빨리 행이 나올 것으로 예상됩니다. 동일한 비율로 더 많은 데이터가 더 오래 걸릴 것입니다. – XTL