Postgres의 TABLESAMPLE은 행이 아닌 주소를 고른다
Tablesample Picks Rows

Postgres의 TABLESAMPLE은 전체 스캔 없이 빠르게 표본을 얻을 수 있지만, SYSTEM 방식은 행이 아닌 페이지 주소를 해시해 선택한다. 그래서 시간순으로 정렬된 테이블에서는 표본이 타임라인의 짧은 조각들로 뭉쳐져 min()이나 avg() 같은 집계가 크게 왜곡될 수 있다. BERNOULLI 방식은 행 단위로 선택해 이 문제를 피하지만 모든 페이지를 열어야 해 느리다. 업데이트나 재작성 후에도 일관된 부분집합이 필요하다면 기본 키를 해시하는 방법이 더 안정적이다.
TABLESAMPLE에 관한 모든 이상한 점은 한 가지 사실에서 비롯된다: 그것은 행을 고르는 것이 아니라 주소를 고른다.